天天看点

java基础之数组java数组

java数组

本篇介绍java中一个重要的东西,那就是java数组!通过数组我们能解决很多的问题,比如它能存储有序数字集合,能够遍历,能够进行排序等等。而数组又分为一维数组和多维数组,接下来具体看看数组在java中的使用。

声明

一维数组

一维数组就是说,数组的层级只有一层,一个一个排列好

声明一维数组有三种方式:

  1. dataType[] arrayRefVar;  推荐使用
  2. 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,敬请关注!