java数组
本篇介绍java中一个重要的东西,那就是java数组!通过数组我们能解决很多的问题,比如它能存储有序数字集合,能够遍历,能够进行排序等等。而数组又分为一维数组和多维数组,接下来具体看看数组在java中的使用。
声明
一维数组
一维数组就是说,数组的层级只有一层,一个一个排列好
声明一维数组有三种方式:
- dataType[] arrayRefVar; 推荐使用
- dataType arrayRefVar[];
int[] array; // 推荐按照这种方式
int array[]; // 不推荐
有时候需要限制数组的容量,指明数组的长度,也就是能存储多少个元素,那么就像下面这样子
int[] array = new int[3]; // 创建容量为3的数组
int array[] = new int[3]; // 创建容量为3的数组
多维数组
多维数组就是说,多层结构的数组,比如二维数组,你们可以理解为数组的数组,三位数组可以理解为数组的数组的数组,以此类推,下面拿二维数组举例,声明二维数组
int[][] array1 = new int[3][2]; // 创建三行两列的数组,推荐
int array2[][] = new int[3][2]; // 创建三行两列的数组,不推荐
数组赋值
创建了数组,就要给其加入元素,那么如何往数组中加入元素,或者如何变更数组中已经存在的元素呢?看下面的代码
数组初始化
- 可以在创建数组的时候,直接赋值
public static void main(String[] args) {
int[] array1 = {1,2,3}; // 一位数组初始化
int[] array2 = new int[]{1,2,3}; // 还可以这样
int[][] array3 = {{1,2,3},{1,2,3,4}};
int[][] array4 = new int[][]{{1,2,3},{1,2,3,4}}; // 二维数组初始化
}
- 可以先声明,再赋值
public static void main(String[] args) {
int[][] array = new int[3][2];
array[0] = new int[3]; // 把数组的第一行设为空数组
array[0][0] = 1; // 设置第一行的第一列为1
array[0][1] = 2; // 设置第一行的第二列为2
System.out.println(Arrays.toString(array[0])); // 输出第一行的数组,结果为[1, 2, 0]
}
元素更改
public static void main(String[] args) {
int[][] array = new int[][]{{1,2,3},{0,0}};
array[1][0] = 1; // 改变第二行第一列为1
array[1][1] = 1; // 改变第二行第二列为1
System.out.println(Arrays.toString(array[1])); // 输出[1, 1]
}
数组默认值
当我们声明数组并赋予数组大小的时候,加入我们没往里面添加元素,数组就会赋值给元素以默认值,我们来看
public static void main(String[] args) {
char[] chrArray = new char[3];
byte[] byArray = new byte[3];
short[] shrArray = new short[3];
int[] intArray = new int[3];
long[] longArray = new long[3];
float[] floatArray = new float[3];
double[] dobArray = new double[3];
boolean[] bolArray = new boolean[3];
String[] strArray = new String[3];
System.out.println(Arrays.toString(chrArray));
System.out.println(Arrays.toString(byArray));
System.out.println(Arrays.toString(shrArray));
System.out.println(Arrays.toString(intArray));
System.out.println(Arrays.toString(longArray));
System.out.println(Arrays.toString(floatArray));
System.out.println(Arrays.toString(dobArray));
System.out.println(Arrays.toString(bolArray));
System.out.println(Arrays.toString(strArray));
}
输出如下:
[, , ]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0.0, 0.0, 0.0]
[0.0, 0.0, 0.0]
[false, false, false]
[null, null, null]
可以看到,数组中存放的就是该数据类型对应的默认值。
数组的遍历
一维数组
public static void main(String[] args) {
String[] strArray = new String[]{"我","是","楷","楷"};
for (int i=0;i<strArray.length;i++){ // 普通for循环
System.out.println(strArray[i]);
}
for (String s:strArray){ // 增强for循环
System.out.println(s);
}
}
输出如下:
我
是
楷
楷
我
是
楷
楷
多维数组
public static void main(String[] args) {
String[][] strArray = new String[][]{{"我","是"},{"楷","楷"}};
for (int i=0;i<strArray.length;i++){ // 普通for循环
for (int j=0;j<strArray.length;j++){
System.out.println(strArray[i][j]);
}
}
for (String[] strs:strArray){
for (String s:strs){
System.out.println(s); // 增强for循环
}
}
}
输出如下:
我
是
楷
楷
我
是
楷
楷
嗯,这些数组的基操,还是要好好掌握的,运用好数组将会大大提高我们的编码能力。
下篇将介绍数组的两个工具类之Array和Arrays,敬请关注!