java數組
數組定義
// 有初始值
String[] array = {"hello","world"};
String[][] array = {{"hello","world"},{"my","java"}};
// 無初始值
String[] array = new String[10];
String[][] array = new String[10][10];
Arrays常見方法
Type 包括
boolean
,byte
,char
,double
,float
,int
,long
,short
,object
fill()
fill()
方法主要包括2個方法:
fill(Type[],Type val)
``fill(Type[] a,int fromIndex,int toIndex,Type val)`
示例:
public static void main(String[] args) {
int[] array = new int[10];
int[] array1 = new int[10];
Arrays.fill(array,0,5,2);
Arrays.fill(array1,3);
System.out.println(Arrays.toString(array));
System.out.println(Arrays.toString(array1));
}
/** 輸出
[2, 2, 2, 2, 2, 0, 0, 0, 0, 0]
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
/**
equals()
數組相等的條件是元素個數必須相等,並且對應位置上的元素也必須相等
public static void main(String[] args) {
int[] array = new int[10];
int[] array1 = new int[10];
int[] array2 = new int[10];
Arrays.fill(array,2);
Arrays.fill(array1,3);
Arrays.fill(array2,2);
//true
System.out.println(Arrays.equals(array,array2));
//false
System.out.println(Arrays.equals(array,array1));
}
asList()
public static <T> List<T> asList(T... a)
返回一個受指定數組支持的固定大小的列表。
public static void main(String[] args) {
// 定義固定長度list
List<String> stooges = Arrays.asList("a","b","c","d");
// stooges.add("hello"); 不允許添加元素
for(String obj:stooges){
System.out.println(obj);
}
}
binarySearch()
binarySearch()
方法主要包括2個方法:
binarySearch(Type[],Type val)
``binarySearch(Type[] a,int fromIndex,int toIndex,Type val)`
該方法是使用二分查找查找有序序列的方法,首先一定要保證數組是升序的不然返回的結果是-1
可以使用
sort()
方法進行排序,sort()
方法是使用經過調優後的快速排序算法進行升序排序的
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7,8,9};
int ans = Arrays.binarySearch(array,4);
System.out.println(ans);
}
copyOf()
和 copyOfRange()
用來複制數組的
public static void main(String[] args) {
int[] array = {9,8,7,6,5,4,3,2,1};
int[] ans = Arrays.copyOf(array,5);
int[] ans1 = Arrays.copyOfRange(array,4,9);
System.out.println(Arrays.toString(array));
System.out.println(Arrays.toString(ans));
System.out.println(Arrays.toString(ans1));
}
deepEquals(Object[] a,Object[] b)
如果兩個指定數組彼此是深層相等 的,則返回
true
。Arrays.deepEquals()
只能比較Object
類,不能比較基本類型,Objects.deepEquals()
可以比較基本類型
public static void main(String[] args) {
Integer[] array = {9,8,7,6,5,4,3,2,1};
Integer[] array1 = {9,8,7,6,5,4,2,2,1};
System.out.println(Objects.deepEquals(array,array1));
System.out.println(Arrays.deepEquals(array1,array));
}
deepHashCode(Object[] a)
基於指定數組的“深層內容”返回哈希碼。
public static void main(String[] args) {
Integer[] array = {9,8,7,6,5,4,3,2,1};
Integer[] array1 = {9,8,7,6,5,4,2,2,1};
System.out.println(Arrays.deepHashCode(array));
System.out.println(Arrays.deepHashCode(array1));
}
deepToString(Object[] a)
返回指定數組“深層內容”的字符串表示形式。
public static void main(String[] args) {
Integer[] array = {9,8,7,6,5,4,3,2,1};
System.out.println(Arrays.deepToString(array));
}
hashCode(Type[] a)
基於指定數組的內容返回哈希碼。
public static void main(String[] args) {
Integer[] array = {9,8,7,6,5,4,3,2,1};
System.out.println(Arrays.hashCode(array));
}
sort(Type[] a)
對數組進行排序,內部使用算法是雙軸快排(
DualPivotQuicksort
)
public static void main(String[] args) {
Integer[] array = {9,8,7,6,5,4,3,2,1};
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}
toString(Type[] a)
返回指定數組內容的字符串表示形式。
public static void main(String[] args) {
Integer[] array = {9,8,7,6,5,4,3,2,1};
System.out.println(Arrays.toString(array));
}