Java 基礎(chǔ)--Arrays工具類詳解
Arrays 是 JDK 提供的操作數(shù)組的工具類,Arrays 類提供了動態(tài)創(chuàng)建、訪問和操作 Java 數(shù)組的方法。
此類還包含一個允許將數(shù)組作為列表來查看的靜態(tài)工廠。
1、數(shù)組轉(zhuǎn)換成字符串
public static String toString(T [] a)
如:
int[] a = {2,8,51,13,46,11,22}; System.out.println(Arrays.toString(a));
2、數(shù)組轉(zhuǎn)換成集合
(1)asList
public static <T> List<T> asList(T... a)
例:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); System.out.println(list);
1)該方法適用于對象型數(shù)據(jù)的數(shù)組(String、Integer…),該方法不要使用于基本數(shù)據(jù)類型的數(shù)組(byte,short,int,long,float,double,boolean);
2)該方法將數(shù)組與List列表鏈接起來:當(dāng)更新其一個時,另一個自動更新;
3)不支持add()、remove()、clear()等方法;
4)用此方法得到的List的長度是不可改變的;
5)如果你的List只是用來遍歷,就用Arrays.asList();如果你的List還要添加或刪除元素, 就new一個java.util.ArrayList,然后一個一個地添加或刪除元素;
6)這個ArrayList不是java.util包下的,而是java.util.Arrays.ArrayList。它是Arrays類自己定義的一個靜態(tài)內(nèi)部類,這個內(nèi)部類沒有實現(xiàn)add()、remove()方法,而是直接使用它的父類AbstractList的相應(yīng)方法。
(2)stream 流操作
public static IntStream stream(int[] array)
例:
int[] a = {2,8,51,13,46,11,22}; IntStream stream = Arrays.stream(a); System.out.println(Arrays.toString(stream.toArray())); System.out.println(Arrays.toString(a));
將數(shù)組轉(zhuǎn)為流式,對array進(jìn)行流式處理,可用一切流式處理的方法。
(3)Collections.addAll()
3、對數(shù)組進(jìn)行升序排列
public static void sort(T [] a)
例:
int[] a = {20, 3, 32, 1, 72, 26, 35}; Arrays.sort(a);
4、判斷數(shù)組是否相等
public static boolean equals(T[] a, T[] a2)
例:
int[] a = {20, 3, 32, 1, 72, 26, 35}; int[] b = {3, 5, 7, 8, 54, 23, 9}; boolean boo = Arrays.equals(a, b);
比較的原則是長度相等,元素相等。
5、所有元素賦特定值
// 用val替換數(shù)組指定范圍的值 public static void fill(T[] a, int fromIndex, int toIndex, T val)
例:
int[] a = {1, 2, 3, 4}; Arrays.fill(a, 0,2,5);
6、對數(shù)組復(fù)制
public static char[] copyOf(char[] original, int newLength)
例:
int[] b = {3, 5, 7, 8, 54, 23, 9}; int[] d = Arrays.copyOf(b, b.length);
Arrays 的 copyOf() 方法傳回的數(shù)組是新的數(shù)組對象,改變傳回數(shù)組中的元素值,不會影響原來的數(shù)組。
copyOf() 的第二個自變量指定要建立的新數(shù)組長度,如果新數(shù)組的長度超過原數(shù)組的長度,則保留數(shù)組默認(rèn)值。
7、查詢數(shù)組下標(biāo)
public static int binarySearch(byte[] a, byte key) // 查詢元素第一次出現(xiàn)的位置
例:
int[] b = {3, 5, 7, 8, 9, 23, 54}; int i = Arrays.binarySearch(b, 5);
使用二分搜索法來搜索指定的數(shù)組,方法返回要搜索元素的索引值。
注:必須在進(jìn)行此調(diào)用之前對數(shù)組進(jìn)行排序(sort 方法)。如果沒有對數(shù)組進(jìn)行排序,則結(jié)果是不明確的。如果數(shù)組包含多個帶有指定值的元素,則無法保證找到的是哪一個。
查找效率比一般的從數(shù)組中從左到右挨個挨個的查找的平均查找時間要快。
8、返回數(shù)組 hashcode 值
public static int hashCode(int a[]); // 返回數(shù)組的hashCode值
例:
int[] a = {1, 2, 3, 4}; System.out.println(Arrays.hashCode(a)); // 結(jié)果:955331
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式
這篇文章主要介紹了JavaBean和SpringBean的區(qū)別及創(chuàng)建SpringBean方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10Java中documentHelper解析xml獲取想要的數(shù)據(jù)
本文主要介紹了Java中documentHelper解析xml獲取想要的數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02SpringBoot使用Redis實現(xiàn)分布式緩存
這篇文章主要介紹了SpringBoot redis分布式緩存實現(xiàn)過程解析,文中通過示例代碼解析的非常詳細(xì),感興趣的同學(xué)可以參考閱讀2023-04-04SpringBoot?實現(xiàn)自定義的?@ConditionalOnXXX?注解示例詳解
這篇文章主要介紹了SpringBoot?實現(xiàn)自定義的?@ConditionalOnXXX?注解,通過示例代碼介紹了實現(xiàn)一個自定義的?@Conditional?派生注解,Conditional?派生注解的類如何注入到?spring?容器,需要的朋友可以參考下2022-08-08詳解Java編程規(guī)約(命名風(fēng)格、常量定義、代碼格式)
這篇文章主要介紹了詳解Java編程規(guī)約(命名風(fēng)格、常量定義、代碼格式),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-10-10