一、java数组的三种初始化方式
- 一维数组
int[] array1=new int[7];
int[] array2=new int[]{12,4,5,6,7,8};
int[] array3={12,4,5,6,7,8};
- 二维数组
int[][] array4=new int[3][4];
int[][] array5=new int[][]{{1,2,3},{4,5,6},{7,8,9}};
int[][] array6 ={{1,2,3},{4,5},{7,8}};
二、java中对二维数组的两种遍历方式
//一位数组也是这样
//第一种正常遍历
for(int i=0;i<array5.length;++i){
for(int j=0;j<array5[i].length;++j){
System.out.println(array5[i][j]);
}
}
//第二种for each遍历
for(int[] arr:array2){
for(int val : arr){
System.out.println(val + " ");
}
System.out.println();
}
三、java中实用的Arrays类库
//1.equals() 多维数组用deepEqulas().
Arrays.equals(array1, array2)
//2.fill() 填充同一元素或复制同一引用.每个值都充填5,
Arrays.fill(array, 5);
//3.sort()数组排序.
Arrays.sort(array1);
//4.binarySearch();二分查找,找array中3的下标
Arrays.binarySearch(array1, 3)
//5.toString();打印数组
System.out.println(Arrays.toString(array));
System.out.println(Arrays.deepToString(array));
//对二维数组打印
四、数组的三种拷贝方式
//第一种clone方法
int[] array2=array1.clone();
//第二种 Arrays.copyOf()
int[] array3=ArrayscopyOf(array1,array1.length);
//第三种 System.arraycopy();
int[] array4=new int(array1.length);
System.arraycopy(array1,0,array4,0,array1.length);
//第一个0代表从第几个开始拷,第二个0代表拷在哪
五、对数组的扩容和缩容
//扩容
public static void main(String[] args){
//对一个数的输入
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字");
int num = input.nextInt();
}
int [] array1 = {1,2,3,4,5};
int [] array2 = new int[array1.length] ;
System.arraycopy(array1, 0, array2, 0, array1.length);
//(源数组,源数组的哪个位置开始,目标数组,目标数组的哪个位置开始存放,拷贝几个);
array1= Arrays.copyOf(array1,
System.out.println(Arrays.toString(array2));
}
//缩容--以删除数组中的3为例子
public static void main(String[] args){
int [] array1 = {1,2,3,4,5};
int [] array2 = new int[array1.length-1] ;
index=2;//3的下标
System.arraycopy(array1, 0, array2, 0, index-1);
//(源数组,源数组的哪个位置开始,目标数组,目标数组的哪个位置开始存放,拷贝几个);
System.arraycopy(array1, index+1, array2,index, array1.length-index+1);
System.out.println(Arrays.toString(array2));
}