一、數組的基礎知識
1、數組:一個存儲具有相同類型的變量集合
2、聲明數組變量的語法:
elementType[ ] arrayRefVar ; (元素類型[ ] 數組引用變量 ;)
elementType arrayRefVar[ ] (元素類型數組引用變量[ ]) ,多用於C/C++
5、數組的默認值:
- 整數類型默認0
- 浮點類型默認0.0
- 布爾類型默認false
- 引用數據類型(對象)默認null
-
char 型默認爲 '\u0000'
6、數組初始化語法:
- 數據類型[] 數組名=new 數據類型[長度]; 創建數組只指定長度但不指定內容
- 數據類型[] 數組名=new 數據類型[長度]; 創建數組只指定長度但不指定內容
- 數據類型[] 數組名={1,2,3,4,5}; 創建數組指定內容(指定長度)
7、訪問數組元素:
二、foreach循環
三、複製數組
複製數組的方法:
- 使用循環語句逐個的複製數組的元素
- 使用System類中的靜態方法arraycopy
- 使用clone方法複製數組
四、數組常見錯誤
ArrayIndexOutOfBoundsException 數組角標越界
public void test01(){
int[] arr = {1,2,3,4,5,6};
//ArrayIndexOutOfBoundsException,數組越界
System.out.println(arr[6]);//訪問了不存在的索引
}
NullPointerException 空指針異常
public void test1(){
int[] arr = {1,2,3,4,5,6,};
arr = null;
//NullPointerException
System.out.println(arr[0]);//數組已經不指向堆內存了,空指針異常
}
五、基本數組操作
-
遍歷
public static void bianli(){
int[] arr={1,2,3,4,5,6,7,8,9};//[0,8]
//數組只有一個唯一的屬性 length 數組的長度
System.out.println(arr.length);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
-
賦值
public static void fuzhi(){
Scanner scanner=new Scanner(System.in);
// System.out.print("請輸入10個數字:");
int[] arr2=new int[10];
for(int i=0;i<arr2.length;i++){
System.out.print("請輸入1個數字:");
arr2[i]=scanner.nextInt();
}
for(int i=0;i<arr2.length;i++){
System.out.print(arr2[i]+" ");
}
}
-
求最大值/最小值
public static void maxormin(){
//計算最大值或最小值的 值
//計算最大值或最小值的 角標
//需求 獲取最大的值10 獲取最小值的角標4
int[] arr={10,2,8,3,1,6,4,7,9,5};
int max=arr[0];
int min_index=0;
for(int i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
if(arr[i]<arr[min_index]){
min_index=i;
}
}
System.out.println("最大值"+max);
System.out.println("最小值角標"+min_index);
}