陣列和集合的區別聯絡
阿新 • • 發佈:2018-12-10
目錄
陣列和集合的區別
1、陣列的容量是固定的。集合不是
1.1 陣列有關:
陣列建立必須初始化,不然無法使用。
陣列沒有add方法。
建立陣列的幾種方式:
輸出測試:
public class ArrayTestClass { static String[] fs1 = new String[16], fs2 = new String[] { "a", "b" }, fs3 = { "c", "d" }; public static void main(String[] args) { fs1[1]="123"; System.err.println(fs1[1]); System.err.println(fs2[1]); System.err.println(fs3[1]); } }
輸出:
123
b
d
1.2 陣列的擴充套件
越界 - 建立新陣列 - 拷貝舊陣列到新陣列 - 指向新陣列
package test; public class ArrayTestClass { public static void main(String[] args) { // new 一個16位的陣列 String[] fs1 = new String[16]; // 迴圈輸出32個數字字元 for (int i = 0; i < 32; i++) { // 檢測越界後的陣列 fs1 = addArr(fs1, i); fs1[i] = "" + i; System.err.println(fs1[i]); } } /** * 檢測是否越界 */ public static String[] addArr(String[] cs, int i) { // 下標越界 if (i >= cs.length) { // new 一個新陣列,長度為原陣列長度的3/2 第一次處理後的長度為24,需要輸出32個,所以會進入兩次 String[] newArr = new String[cs.length + cs.length / 2]; // 拷貝原陣列到新陣列。引數為:(原陣列, 原陣列的開始位置, 目標陣列, 目標陣列的開始位置, 拷貝個數) System.arraycopy(cs, 0, newArr, 0, cs.length); // 把原陣列替換為新陣列 cs = newArr; } return cs; } }
2、集合可以不指定型別。陣列不能
2.1、集合相關
待續