1. 数组的三种声明方式
1. 1第一种方式
int arr [ ] = new int [5] ;
属于动态创建,声明并创建内存空间,等待赋值。
//创建数组的第一种方式
//属于动态创建,声明并创建内存空间,等待赋值。
int arr[] = new int[5];
int value = arr[0];
//int没有赋值,默认为0
System.out.println("value = "+value);
arr[1]=1;
int value1 =arr[1];
System.out.println("value1 = "+value1);
//运行结果:value = 0
// value1 = 1
标题1.2 第二种方式
int a[ ] = new int [ ] { 1,2,3,4,5 };
也是动态创建,声明并创建内存空间,并赋值。
//创建数组的第二种方式
//属于动态创建,声明并创建内存空间,并赋值。
int a[] = new int[]{1,2,3,4,5};
System.out.println("a[0] = "+a[0]);
//运行结果:a[0] = 1
1.3 第三种方式,也是最简单的一种
int [ ] x = {6,7,8,9,10};
属于静态创建,声明并直接赋值,创建内存空间。
//创建数组的第三种方式,也是最简单的一种
//属于静态创建,声明并直接赋值,创建内存空间。
int[] x = {6,7,8,9,10};
System.out.println("x[0] = "+x[0]);
//运行结果:a[0] = 6
2. Arrays类的常用方法总结
2.1 Arrays.sort();
对数组中的元素从小到大进行排序
Scanner sc=new Scanner(System.in);
int [] arr=new int [4];
for(int i=0;i<4;i++){
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
System.out.println("nihao1!");
for(int i=0;i<4;i++){
System.out.println(arr[i]);
}
运行结果:
56 63 8 5
5
8
56
63
2.2 Arrays.copyof()
拷贝数组 从下标0开始,如果参数长度超过原数组长度,会进行用null进行填充
Integer[] data1 = {1, 2, 3, 4};
Integer[] data2 = Arrays.copyOf(data1, 2);
System.out.println(Arrays.toString(data2)); // [1, 2]
Integer[] data2 = Arrays.copyOf(data1, 5);
System.out.println(Arrays.toString(data2)); // [1, 2, 3, 4, null]
2.3Arrays.asList()
将数组转换为集合,接收一个可变参
注意:该方法返回的是Arrays内部静态类ArrayList,而不是我们平常使用的ArrayList,,该静态类ArrayList没有覆盖父类的add, remove等方法,所以如果直接调用,会报UnsupportedOperationException异常
List<Integer> list = Arrays.asList(1, 2, 3);
list.forEach(System.out::println); // 1 2 3
Integer[] data = {1, 2, 3};
List<Integer> list = Arrays.asList(data);
list.forEach(System.out::println); // 1 2 3
如果将基本数据类型的数组作为参数传入,
该方法会把整个数组当作返回的List中的第一个元素
int[] data = {1, 2, 3};
List<int[]> list = Arrays.asList(data);
System.out.println(list.size()); // 1
System.out.println(Arrays.toString(list.get(0))); // [1, 2, 3]
2.4Arrays.toString(Object[] array)
返回数组元素的字符串形式
Integer[] data = {1, 2, 3};
System.out.println(Arrays.toString(data)); // [1, 2, 3]
3.多维数组的遍历
比如二维数组的遍历
多维数组的遍历其实就是循环嵌套把数组中的数据通过下标一个一个输出
Scanner sc=new Scanner(System.in);
int arr[][]=new int [2] [3];
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
arr[i][j]=sc.nextInt();
}
}
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
System.out.println(arr[i][j]);
}
}