陣列學習筆記
1.陣列的定義
int[] a;
int a[];
兩種方式(當然型別可以是基本資料型別,也可以是引用型別咯)
2.陣列的初始化
int[] a = {1,45,2,3}; //基本資料型別
Man[] mans = {new Man(),new Man().new Man()}; //引用型別
int[] a = new int(2); //動態的初始化,給陣列分配兩個空間
3.陣列的預設初始化
陣列是物件,他的元素相當於物件的屬性;因此每個元素也按照屬性的方式被預設初始化。
int a2[] = new int[2]; //預設值是0,0
boolean b[] =new boolean[2]; //預設值是 false,false
String s[] = new String[2]; //預設值是 null,null
4.陣列常見的兩種遍歷方式
(1)通過for迴圈,依次通過陣列的下標 【0,length-1】,通過下標遍歷陣列中的元素,期間可以讀取值
也可以修改值
(2)增強for迴圈:for-each專門用來讀取陣列或容器中所有的元素
for (int a1:a){其中int代表陣列型別、a1名字自由,會逐次拷貝a數組裡面的元素
System.out.println(a1);
}
-
for-each
增強for
迴圈在遍歷陣列過程中不能修改陣列中某元素的值. -
for-each
5.陣列的拷貝
System.arraycopy(object src,int srcpos,object dest, int destpos,int length)
該方法可以將src數組裡的元素值賦給dest陣列的元素,其中srcpos指定從src陣列的第幾個元素開始賦值,length 引數指定 將src陣列的多少個元素賦給dest陣列的元素
String[] s = {"阿里巴巴","華為","位元組跳動","京東","美團"};
String[] sBak = new String[6];
System.arraycopy(s,0,sBak,0,s.length);
for (int i = 0 ;i<sBak.length;i++){
System.out.print(sBak[i]+"\t");
}
6.java,util.Arrays類
這是一個工具類,裡面包含了很對對陣列進行操作的方法
(1)Arrays.toString(陣列) 把目標陣列全部輸出出去
int a[] = {1,2};
//把目標陣列輸出
System.out.println(Arrays.toString(a));
//此處的Arrays.toString()
方法是Arrays
類的靜態方法,不是Object
的toString()
方法。
(2)Array.sort(陣列) 對陣列進行排序
int a[] = {1,2};
int b[] = {15,635,231,5,54,489};
//把目標陣列輸出
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
Arrays.sort(b); //對陣列進行排序
System.out.println(Arrays.toString(b));
(3)Arrays.binarySearch(陣列,值) 對sort()以後的陣列進行二分查詢法,並返回他的索引,如果沒有該資料,就會返回一個負數!
//排序以後使用二分查詢
System.out.println("該元素的索引為:"+Arrays.binarySearch(b,635) );
(4)Arrays.fill(陣列,起始下標,終止下標,替換成什麼); 把陣列中的某一個前閉後開區間的每一項全部替換為目標數值
Arrays.fill(b,2,4,100);
System.out.println(Arrays.toString(b));