java數組定義和常用數組的操作方法

java數組

數組定義

// 有初始值
String[] array = {"hello","world"};
String[][] array = {{"hello","world"},{"my","java"}};
// 無初始值
String[] array = new String[10];
String[][] array = new String[10][10];

Arrays常見方法

Arrays
equals()
fill()
sort()
binarySearch()
toString()
hashCode()
asList()

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)

如果兩個指定數組彼此是深層相等 的,則返回 trueArrays.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));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章