java数组的api_java程序员常用的11个API,赶紧收藏
一、Scanner 類
一個可以解析基本類型和字符串的簡單文本掃描器。
package cn.wxuns;
import java.util.Scanner;
public class MyScanner {
public static void main( String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.println("請輸入一個數(shù)字");
int sc = myScanner.nextInt();
System.out.println(sc);
}
}
二、Random 類
生成偽隨機數(shù)
package cn.wxuns;
import java.util.Random;
public class MyRandom {
public static void main(String[] args){
int random = new Random().nextInt(100);
System.out.println(random);
}
}
三、ArrayList 類
定義:ArrayList,ArrayList
方法:add,set,get,remove,clone,size 等
package cn.wxuns;
import java.util.ArrayList;
public class MyArray {
public static void main(String[] args){
ArrayList arr = new ArrayList<>();
arr.add("lisi");
System.out.println(arr.get(0));
}
}ArrayList 對象不能存儲基本類型,只能存儲引用類型的數(shù)據(jù)。類似 不能寫,但是存儲基本數(shù)據(jù)類型對應的包裝類型是可以的。所以,想要存儲基本類型數(shù)據(jù), <> 中的數(shù)據(jù)類型,必須轉換后才能編寫,轉換寫法如下:
四、String 類
類 String 中包括用于檢查各個字符串的方法,比如用于比較字符串,搜索字符串,提取子字符串以及創(chuàng)建具有翻譯為大寫或小寫的所有字符的字符串的副本。
1. 字符串不變:字符串的值在創(chuàng)建后不能被更改。
String s1 = "abc";
s1 += "d";
System.out.println(s1); // "abcd"// 內(nèi)存中有"abc","abcd"兩個對象,s1從指向"abc",改變指向,指向了"abcd"。
2. 因為 String 對象是不可變的,所以它們可以被共享
String s1 = "abc";
String s2 = "abc";
// 內(nèi)存中只有一個"abc"對象被創(chuàng)建,同時被s1和s2共享。
3."abc" 等效于 char [] data={ 'a' , 'b' , 'c' } 。
例如:
String str = "abc";
相當于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
// String底層是靠字符數(shù)組實現(xiàn)的。
五、構造方法public String () :初始化新創(chuàng)建的 String 對象,以使其表示空字符序列。
public String (char [] value) :通過當前參數(shù)中的字符數(shù)組來構造新的 String。
public String (byte [] bytes) :通過使用平臺的默認字符集解碼當前參數(shù)中的字節(jié)數(shù)組來構造新的 String。
常見 String 類方法:length()字符串的長度
charAt()截取一個字符
getchars()截取多個字符并由其他字符串接收
getBytes () 將字符串變成一個 byte 數(shù)組
toCharArray () 將字符串變成一個字符數(shù)組
equals () 和 equalsIgnoreCase () 比較兩個字符串是否相等,前者區(qū)分大小寫,后者不區(qū)分
startsWith () 和 endsWith () 判斷字符串是不是以特定的字符開頭或結束
toUpperCase () 和 toLowerCase () 將字符串轉換為大寫或小寫
concat () 連接兩個字符串
trim () 去掉起始和結束的空格
substring()截取字符串
indexOf () 和 lastIndexOf () 前者是查找字符或字符串第一次出現(xiàn)的地方,后者是查找字符或字符串最后一次出現(xiàn)的地方
compareTo () 和 compareToIgnoreCase ()按字典順序比較兩個字符串的大小,前者區(qū)分大小寫,后者不區(qū)分
replace () 替換
六、Arrays 類
java.util.Arrays 此類包含用來操作數(shù)組的各種方法,比如排序和搜索等。其所有方法均為靜態(tài)方法,調(diào)用起來非常簡單。
1.Arrays.asList(T… data)
注意:該方法返回的是 Arrays 內(nèi)部靜態(tài)類 ArrayList,而不是我們平常使用的 ArrayList,,該靜態(tài)類 ArrayList 沒有覆蓋父類的 add, remove 等方法,所以如果直接調(diào)用,會報 UnsupportedOperationException 異常將數(shù)組轉換為集合,接收一個可變參
List list = Arrays.asList(1, 2, 3);
Integer[] data = {1, 2, 3};
List list = Arrays.asList(data);如果將基本數(shù)據(jù)類型的數(shù)組作為參數(shù)傳入, 該方法會把整個數(shù)組當作返回的 List 中的第一個元素,多維數(shù)組
int[] data = {1, 2, 3};
List list = Arrays.asList(data);
2.Arrays.fill()用指定元素填充整個數(shù)組(會替換掉數(shù)組中原來的元素)
Integer[] data = {1, 2, 3, 4};
Arrays.fill(data, 9);
System.out.println(Arrays.toString(data)); // [9, 9, 9, 9]用指定元素填充數(shù)組,從起始位置到結束位置,取頭不取尾(會替換掉數(shù)組中原來的元素)
Integer[] data = {1, 2, 3, 4};
Arrays.fill(data, 0, 2, 9);
System.out.println(Arrays.toString(data)); // [9, 9, 3, 4]
3.Arrays.sort()對數(shù)組元素進行排序(串行排序
int[] data = {1, 2, 3,1,3,4};
Arrays.sort(data);
System.out.println(data);對數(shù)組元素的指定范圍進行排序(串行排序)
String[] data = {"1", "4", "3", "2"};
System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]// 對下標[0, 3)的元素進行排序,即對1,4,3進行排序,2保持不變Arrays.sort(data, 0, 3);
System.out.println(Arrays.toString(data)); // [1, 3, 4, 2]使用自定義比較器,對數(shù)組元素的指定范圍進行排序(串行排序)
String[] data = {"1", "4", "3", "2"};
System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]// 對下標[0, 3]的元素進行降序排序,即對1,4,3進行降序排序,2保持不變Arrays.sort(data, 0, 3, (str1, str2) -> {
if (str1.compareTo(str2) > 0) {
return -1;
} else {
return 1;
}
});
System.out.println(Arrays.toString(data)); // [4, 3, 1, 2]
4.Arrays.parallelSort()
對數(shù)組元素進行排序(并行排序),當數(shù)據(jù)規(guī)模較大時,會有更好的性能
Arrays.parallelSort(data);
5.Arrays.binarySearch () 二分法 查找注意:在調(diào)用該方法之前,必須先調(diào)用 sort () 方法進行排序,如果數(shù)組沒有排序, 那么結果是不確定的,此外如果數(shù)組中包含多個指定元素,則無法保證將找到哪個元素
6.Arrays.copyOf()
拷貝數(shù)組,其內(nèi)部調(diào)用了 System.arraycopy () 方法,從下標 0 開始,如果超過原數(shù)組長度,會用 null 進行填充
Integer[] data1 = {1, 2, 3, 4};
Integer[] data2 = Arrays.copyOf(data1, 2);
System.out.println(Arrays.toString(data2)); // [1, 2]Integer[] data2 = Arrays.copyOf(data1, 5);
System.out.println(Arrays.toString(data2)); // [1, 2, 3, 4, null]
7.Arrays.copyOfRange(T[] original, int from, int to)
拷貝數(shù)組,指定起始位置和結束位置,如果超過原數(shù)組長度,會用 null 進行填充,同 6
8.Arrays.equals(Object[] array1, Object[] array2)
判斷兩個數(shù)組是否相等,實際上比較的是兩個數(shù)組的哈希值,即 Arrays.hashCode (data1) == Arrays.hashCode (data2)
9.Arrays.deepEquals(Object[] array1, Object[] array2)
判斷兩個多維數(shù)組是否相等,實際上比較的是兩個數(shù)組的哈希值,即 Arrays.hashCode (data1) == Arrays.hashCode (data2)
10.Arrays.hashCode(Object[] array)
返回數(shù)組的哈希值
11.Arrays.deepHashCode(Object[] array)
返回多維數(shù)組的哈希值
12.Arrays.toString(Object[] array)
返回數(shù)組元素的字符串形式
Integer[] data = {1, 2, 3};
System.out.println(Arrays.toString(data)); // [1, 2, 3]
13.Arrays.deepToString(Object[] array)
返回多維數(shù)組元素的字符串形式
14.Arrays.setAll(T[] array, IntFunction
Integer[] data = {1, 2, 3, 4};
// i為索引值Arrays.setAll(data, i -> data[i] * 2);
System.out.println(Arrays.toString(data)); // [2, 4, 6, 8]
15.Arrays.parallelSetAll(T[] array, IntFunction
Integer[] data = {2, 3, 4, 5};
// 第一個元素2不變,將其與第二個元素3一起作為參數(shù)x, y傳入,得到乘積6,作為數(shù)組新的第二個元素// 再將6和第三個元素4一起作為參數(shù)x, y傳入,得到乘積24,作為數(shù)組新的第三個元素,以此類推Arrays.parallelPrefix(data, (x, y) -> x * y);
System.out.println(Arrays.toString(data)); // [2, 6, 24, 120]
16.Arrays.spliterator(T[] array)
返回數(shù)組的分片迭代器,用于并行遍歷數(shù)組
17.Arrays.stream(T[] array)
返回數(shù)組的流 Stream,然后我們就可以使用 Stream 相關的許多方法了
七、Math 類
java.lang.Math 類包含用于執(zhí)行基本數(shù)學運算的方法,如初等指數(shù)、對數(shù)、平方根和三角函數(shù)。類似這樣的工具類,其所有方法均為靜態(tài)方法,并且不會創(chuàng)建對象,調(diào)用起來非常簡單。public static long abs (double a): 返回 a 的絕對值。
public static double max (double a,double b): 返回 a、b 的最大值。
public static double min (double a,double b): 返回 a、b 的最小值。
pubic static double random (): 產(chǎn)生一個 0~1 之間的隨機數(shù) (不包括 0 和 1)。
public static double pow (double a,double b); 返回 a 的 b 次冪。
public static double sqrt (double a): 返回 a 的平方根。
public static double log (double a): 返回 a 的對數(shù)。
public static double sin (double a): 返回 a 的正弦值。
public static double asin (double a): 返回 a 的反正弦值。
public static double ceil (double a): 返回大于 a 的最小整數(shù),并將該整數(shù)轉化為 double 型數(shù)據(jù)方法的名字 ceil 是天花板的意思,很形象)。例如,Math. eil52) 的值是 16.0。
public static double floor (double a): 返回小于 a 的最大整數(shù),并將該整數(shù)轉化為 double 型數(shù)據(jù)。例如,Math.floor (15.2) 的值是 15.0,Mat.floor (-15.2) 的值是 - 16.0。
public static long round (double a): 返回值是 (long) Math.floor (a+0.5)), 即所謂 a 的 “四舍五入” 后的值。一個比較通俗好記的辦法是:如果 a 是非負數(shù),round 方法返回 a 的四舍五入后的整數(shù) (小數(shù)大于等于 0.5 入,小于 0.5 舍): 如果 a 是負數(shù),round 方法返回 a 的絕對值的四舍五入后的整數(shù)取負,但注意,小數(shù)大于 0.5 入,小于等于 0.5 舍,例如,Math.round (-15.501) 的值是 - 16,Math.round (-15.50) 的值是 - 15。
八、Object 類
對象,所有的類都繼承 Object 類,可重寫部分方法
九、日期時間類
Date 類
表示特定的瞬間,精確到毫秒。
after,before,clone,getTime,hashCode,toString
DateFormat 類
是日期 / 時間格式化子類的抽象類,我們通過這個類可以幫我們完成日期和文本之間的轉換,也就是可以在 Date 對象與 String 對象之間進行來回轉換。格式化:按照指定的格式,從 Date 對象轉換為 String 對象。
解析:按照指定的格式,從 String 對象轉換為 Date 對象。
由于 DateFormat 為抽象類,不能直接使用,所以需要常用的子類 java.text.SimpleDateFormat
創(chuàng)建 SimpleDateFormat
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class MySimpleDateFormat {
public static void main(String[] args) {
// 對應的日期格式如:2018-01-16 15:06:38 DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
}
常用方法:public String format (Date date):將 Date 對象格式化為字符串。
public Date parse (String source):將字符串解析為 Date 對象。
Calendar 類
Calendar 為抽象類,由于語言敏感性,Calendar 類在創(chuàng)建對象時并非直接創(chuàng)建,而是通過靜態(tài)方法創(chuàng)建 getInstance(),返回子類對象
常用方法:public int get (int field):返回給定日歷字段的值。
public void set (int field, int value):將給定的日歷字段設置為給定值。
public abstract void add (int field, int amount):根據(jù)日歷的規(guī)則,為給定的日歷字段添加或減去指定的時間量。
public Date getTime ():返回一個表示此 Calendar 時間值的 Date 對象。
Calendar 類中提供很多成員常量,代表給定的日歷字段:
十、System 類currentTimeMillis 方法:毫秒級的時間戳
arrayCopy 方法:將數(shù)組中指定的數(shù)據(jù)拷貝到另一個數(shù)組中。System.arraycopy( 源數(shù)組, 源數(shù)組, 目標數(shù)組, 目標數(shù)組索引起始位置, length);
十一、StringBuilder 類
由于 String 類的對象內(nèi)容不可改變,所以每當進行字符串拼接時,總是會在內(nèi)存中創(chuàng)建一個新的對象。
在 API 中對 String 類有這樣的描述:字符串是常量,它們的值在創(chuàng)建后不能被更改。為了解決這一問題,可以使用 java.lang.StringBuilder 類。
構造函數(shù):public StringBuilder ():構造一個空的 StringBuilder 容器。
public StringBuilder (String str):構造一個 StringBuilder 容器,并將字符串添加進去。
方法:public StringBuilder append (...):添加任意類型數(shù)據(jù)的字符串形式,并返回當前對象自身。
public String toString ():將當前 StringBuilder 對象轉換為 String 對象。
十二、包裝類
Java 提供了兩個類型系統(tǒng),基本類型與引用類型,使用基本類型在于效率,然而很多情況,會創(chuàng)建對象使用,因為對象可以做更多的功能,如果想要我們的基本類型像對象一樣操作,就可以使用基本類型對應的包裝類,如下:
基本數(shù)值 ----> 包裝對象
Integer i = new Integer(4);//使用構造函數(shù)函數(shù)Integer iii = Integer.valueOf(4);//使用包裝類中的valueOf方法原作者:Java
原文鏈接:java程序員常用的11個API,趕緊收藏
原出處:公眾號
侵刪
總結
以上是生活随笔為你收集整理的java数组的api_java程序员常用的11个API,赶紧收藏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java的throw_浅谈Java的th
- 下一篇: java加密文件夹_使用java.uti