1. 程式人生 > 其它 >陣列學習筆記

陣列學習筆記

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){
System.out.println(a1);
}
其中int代表陣列型別、a1名字自由,會逐次拷貝a數組裡面的元素  
  • 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類的靜態方法,不是ObjecttoString()方法。

   (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));