java.util.Arrays主要是用來對數組進行操作的類,主要包括以下方法:
1.數組轉化列表,得到固定大小的列表,Arrays.asList(...);
public static <T> List<T> asList(T... a)
-
返回一個受指定數組支持的固定大小的列表。(對返回列表的更改會“直接寫”到數組。)此方法同
Collection.toArray()
一起,充當了基於數組的 API 與基於 collection 的 API 之間的橋梁。返回的列表是可序列化的,並且實現了RandomAccess
。此方法還提供了一個創建固定長度的列表的便捷方法,該列表被初始化為包含多個元素:
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
2.數組中查找元素(二分法查找),必須確保數組用sort()排過序,Arrays.binarySearch(byte[] a, int fromIndex, int toIndex, byte key)
;
(1)public static int binarySearch(byte[] a,byte key)
-
使用二分搜索法來搜索指定的 byte 型數組,以獲得指定的值。必須在進行此調用之前對數組進行排序(通過
sort(byte[])
方法)。如果沒有對數組進行排序,則結果是不確定的。如果數組包含多個帶有指定值的元素,則無法保證找到的是哪一個。
(2)public static int binarySearch(byte[] a,int fromIndex,int toIndex, byte key)
-
使用二分搜索法來搜索指定的 byte 型數組的范圍,以獲得指定的值。必須在進行此調用之前對范圍進行排序(通過
sort(byte[], int, int)
方法)。如果沒有對范圍進行排序,則結果是不確定的。如果范圍包含多個帶有指定值的元素,則無法保證找到的是哪一個。
3.計算數組的哈希碼,Arrays.hashCode(...);
4.復制數組內容,Arrays.copyOf(boolean[] original, int newLength)
public static int[] copyOf(int[] original,int newLength)
- 復制指定的數組,截取或用 0 填充(如有必要),以使副本具有指定的長度。對於在原數組和副本中都有效的所有索引,這兩個數組將包含相同的值。對於在副本中有效而在原數組無效的所有索引,副本將包含 0。當且僅當指定長度大於原數組的長度時,這些索引存在。
5.自定義要復制的數組內容,Arrays.copyOfRange(boolean[] original, int from, int to)
public static <T> T[] copyOfRange(T[] original,int from,int to)
-
將指定數組的指定范圍復制到一個新數組。該范圍的初始索引 (
from) 必須位於 0 和
original.length(包括)之間。
original[from] 處的值放入副本的初始元素中(除非
from == original.length 或
from == to)。原數組中后續元素的值放入副本的后續元素。該范圍的最后索引 (
to)(必須大於等於
from)可以大於
original.length,在這種情況下,
null 被放入索引大於等於
original.length - from 的副本的所有元素中。返回數組的長度為
to - from。
所得數組與原數組屬於完全相同的類。
6.兩個數組內容比較,Arrays.equals(boolean[] a, boolean[] a2)
public static boolean equals(boolean[] a, boolean[] a2)
- 如果兩個指定的 boolean 型數組彼此 相等,則返回 true。如果兩個數組包含相同數量的元素,並且兩個數組中的所有相應元素對都是相等的,則認為這兩個數組是相等的。換句話說,如果兩個數組以相同順序包含相同的元素,則兩個數組是相等的。此外,如果兩個數組引用都為 null,則認為它們是相等的。
7.向數組中填值,Arrays.fill(boolean[] a, boolean val)
(1)public static void fill(byte[] a, byte val)
- 將指定的 byte 值分配給指定 byte 節型數組的每個元素。
(2)public static void fill(byte[] a,int fromIndex,int toIndex,byte val)
- 將指定的 byte 值分配給指定 byte 型數組指定范圍中的每個元素。填充的范圍從索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,則填充范圍為空。)
8.數組排序Arrays.sort()
(1)public static void sort(byte[] a)
對指定的 byte 型數組按數字升序進行排序。
(2)public static void sort(byte[] a,int fromIndex,int toIndex)
對指定 byte 型數組的指定范圍按數字升序進行排序。排序的范圍從索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果fromIndex==toIndex,則排序范圍為空。)
9.數組轉為字符串toString(byte[] a)
public static String toString(float[] a)
返回指定數組內容的字符串表示形式。字符串表示形式由數組的元素列表組成,括在方括號( "[]")中。相鄰元素用字符 ", "(逗號加空格)分隔。這些元素通過 String.valueOf(byte) 轉換為字符串。如果 a 為 null,則返回 "null"。
如:
import java.util.Arrays; public class test5 { public static void main(String[] args) { int[] num = {1,-2,3,10,-4,7,2,-5}; System.out.println(Arrays.toString(num)); System.out.println(Arrays.toString(num).split(",").length); for (String s : Arrays.toString(num).split(",")){ System.out.println(s); } } } 輸出為: [1, -2, 3, 10, -4, 7, 2, -5] 8 [1 -2 3 10 -4 7 2 -5]