聲明的時候可以使用 new 或者是使用 {} 數組快捷初始化,但是注意必須將 聲明、創建和初始化都放在同一條語句中,將他們分開會發生錯誤。
創建完數組之后,每個元素的值是這個類型的默認值,數值型為 0、0.0,布爾型為 false,引用類型為 null。
接收命令行參數
主函數public static void main(String[] args)
中的args
可以接收命令行傳入的參數,是一個字符串的數組,傳遞的時候可以使用空格分開。如果傳遞的參數帶有空格可以使用雙引號。
public class lianxi2 {
public static void main(String[] args) {
System.out.println(args[0]);
}
}
$ javac lianxi2.java
$ java lianxi2 11
11
- 使用隨機數初始化數組,用 [0, 100) 的數初始化數組。
int[] myList = new int[10];
for (int i=0; i<myList.length; i++) {
myList[i] = (int) (Math.random() * 100);
}
- 隨機打亂:找到一個元素,找隨機下標,交換兩個元素。
for (int i=myList.length -1; i>0; i--) {
// 隨機生成一個數 j 0<=j<=i
int j = (int)(Math.random()*(i+1));
// 交換 myList[i] 和 myList[j]
int temp = myList[i];
myList[i] = myList[j];
myList[j] = temp;
}
- 向前向后依次移動
int temp = myList[0];
for (int i=1; i<myList.length; i++) {
myList[i-1] = myList[i];
}
myList[myList.length-1] = temp;
- 復制數組
賦值語句不能復制引用變量,只有 new 會創建一個新的對象。
復制數組內容,可以新創建一個數組然后使用循環語句逐個復制,或者使用 System 中的靜態方法 arraycopy(原數組,原數組位置,目標數組,目標數組位置,長度)
,同樣的這個方法不會給目標數組分配內存空間,復制前必須要先創建數組以及分配內存。