数组
一维数组
- 定义的格式
- 数据类型[] 数组名 = new 数据类型[数组的长度];
- 初始化的方式
- 动态初始化 只指定长度,由系统给出初始化值
- b:静态初始化 给出初始化值,由系统决定长度
- int[] arr = {1,2,3,4,5};或者是int[] arr = new int[]{1,2,3,4,5};
- 常见的问题
- ArrayIndexOutOfBoundsException:数组索引越界异常
- NullPointerException:空指针异常
- 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
- 示例:
int[] arr = {1,2,3};
arr = null;
System.out.println(arr[0]);
示例
public static void print(int[] arr) {
for (int i = 0;i < arr.length ;i++ ) {
System.out.print(arr[i] + " ");
}
}
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1;i < arr.length ;i++ ) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
public static void reverseArray(int[] arr) {
for (int i= 0;i < arr.length / 2 ; i++) {
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
二维数组
- 定义的格式
- int[][] arr = new int[3][2];
- int[] arr[] = new int[3][2];
- int arr[][] = new int[3][2];
- 初始化
- int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
示例
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
for (int i = 0;i < arr.length ;i++ ) {
for (int j = 0;j < arr[i].length ;j++ ) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
int[][] arr ={{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
int sum = 0;
for (int i = 0;i < arr.length ;i++ ) {
for (int j = 0;j < arr[i].length ;j++ ) {
sum = sum + arr[i][j];
}
}
System.out.println(sum);
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b);
change(a,b);
System.out.println("a:"+a+",b:"+b);
int[] arr = {1,2,3,4,5};
change(arr);
System.out.println(arr[1]);
}
public static void change(int a,int b) {
System.out.println("a:"+a+",b:"+b);
a = b;
b = a + b;
System.out.println("a:"+a+",b:"+b);
}
public static void change(int[] arr) {
for(int x=0; x<arr.length; x++) {
if(arr[x]%2==0) {
arr[x]*=2;
}
}
}