java基礎學習之七:陣列型別

趙明威發表於2015-11-30

一、java陣列的概念

1.java陣列的概念

  • 陣列可以看成是多個相同型別資料組合,對這些資料的統一管理。
  • 陣列變數屬引用型別,陣列也可以看成是物件,陣列中的每個元素相當於該物件的成員變數。
  • 陣列的元素可以是任何資料型別,包括基本型別和引用型別。
  • C和C++中的陣列都可以分配在棧上面,而JAVA中的陣列是隻能分配在堆上面的,因為JAVA中的陣列是引用型別。

二、一維陣列

1.一維陣列宣告方式

  • 格式一:陣列元素型別 陣列名[ ]; 即type var[ ];
  • 格式二:陣列元素型別[ ] 陣列名; 即type[ ] var;

2.一維陣列的初始化

1).陣列建立

java中使用關鍵字new建立陣列物件。

格式為:陣列名 = new 陣列元素的型別[陣列元素的個數]

注意:java語言中宣告陣列時不能指定其長度(陣列中的元素個數)

如:

    int var[5]; //這樣宣告一維陣列是非法的。
    int[] var = new int[8];//建立一個長度為8的int陣列,包括八個int型別元素,且每個元素預設值為0

陣列包括一些基本的屬性:

  • 陣列索引 var[index],index從0開始到7的整數;但是index不可以為負值或者超過7,var[0];//0
  • 陣列長度 length ,如: var.length;//值為8
  • 如果陣列為String型別預設值為null 陣列的初始化兩種方式:

2).直接靜態賦值.

int aArray[] = {1,2,3,12,3,3,2,1};

String[] bArray = {"a","b","c", "d", "e"};

String[] cArray = new String[]{"a","b","c","d","e"};

3)動態for迴圈賦值

   for(int i = 0; i < var.length; i++){
        var[i] = i+1;
   }

4)陣列預設值的問題

三、陣列的一些基本方法

文中使用了一些APIorg.apache.commons.lang.ArrayUtils

是個array的包裝類。更多ArrayUtils方法,參見部落格ArrayUtils

API在此:http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/ArrayUtils.html

1、列印Java陣列中的元素

1)利用Arrays.toString(陣列)方法可以直接列印

    int[] var = new int[8];
    for(int i = 0; i < var.length; i++){
        var[i] = i+1;
    }
    System.out.println(Arrays.toString(var));

結果為:

   [1, 2, 3, 4, 5, 6, 7, 8]

2).也可以通過for迴圈,依次取值,直接列印 for(int i = 0; i < var.length; i++){ System.out.println(var[i]); } 注意不能直接列印引用:

System.out.println(var);
// [I@22911fb5

2.陣列翻轉 reverse

int[] intArray = { 1, 2, 3, 4, 5 };
ArrayUtils.reverse(intArray);
System.out.println(Arrays.toString(intArray));
//[5, 4, 3, 2, 1]

3.從陣列中移除一個元素 removeElement

int[] intArray = { 1, 2, 3, 4, 5 };
int[] removed = ArrayUtils.removeElement(intArray, 3);//create a new array
System.out.println(Arrays.toString(removed));

4.將陣列中的元素以字串的形式輸出

String str = StringUtils.join(new String[]{"a", "b", "c"}, ", ");//需要用到commons包
System.out.println(str);

5.連線兩個陣列

int[] intArray = { 1, 2, 3, 4, 5 };
int[] intArray2 = { 6, 7, 8, 9, 10 };
// Apache Commons Lang library
int[] combinedIntArray = ArrayUtils.addAll(intArray, intArray2);

6.檢查陣列中是否包含某一個值

String[] stringArray = { "a", "b", "c", "d", "e" };
boolean b = Arrays.asList(stringArray).contains("a");
System.out.println(b);
// true

相關文章