数组

作者: 浑水泡面 | 来源:发表于2020-05-03 13:53 被阅读0次

    概述
    数组是一种引用类型。数组可以存放多个类型统一的数据,可以存放基本类型,也可以存放引用类型。


    定义格式
    数据类型[] 数组名称;
    等效的写法:
    数据类型 数组名称[];


    数组的初始化方式,两种
    1.动态初始化,指定数组的长度
    2.静态初始化,指定数组的内容

    动态初始化:直接指定数组的长度,也就是数组当中到底可以存放多少个数组。
    第一种格式:
    数组类型[] 数组名称 = new 数据类型[数组长度];
    第二种格式:
    数据类型[] 数组名称;
    数组名称 = new 数据类型[数组长度];

        public static void main(String[] args) {
            int[] array1 = new int[3];
            
            double[] array2 = new double[5];
            
            String[] array3 = new String[10];
            
            int[] array4;
            array4 = new int[10];
        }
    

    访问数组当中的元素
    如果直接打印数组的名称,结果是16进制的地址值(的哈希值)
    格式
    数组名称[索引]
    索引:也就是数组当中多个元素的编号。从0开始,一直到“长度-1”为止

    动态初始化的时候,数组当中的元素都会被赋予一个默认值。规则

    • 如果是整数,默认就是0;
    • 如果是浮点数,默认就是0.0;
    • 如果是时字符,默认就是’\u0000’;
    • 如果是布尔值,默认就是false;
    • 如果是字符串或者其他引用类型,默认null;
        public static void main(String[] args) {
            int[] arrayA = new int[3];
            
            System.out.println(arrayA); //数组名称
            System.out.println(arrayA[0]);
            System.out.println(arrayA[1]);
            System.out.println(arrayA[2]);
            
            System.out.println("=================");
            
            double[] arrayB = new double[3];
            System.out.println(arrayB);
            System.out.println(arrayB[0]);
            System.out.println(arrayB[1]);
            System.out.println(arrayB[2]);
            
            System.out.println("=================");
            
            arrayB[1] = 3.14;
            System.out.println(arrayB[0]);
            System.out.println(arrayB[1]);
            System.out.println(arrayB[2]);
            
            double num = arrayB[1];
            System.out.println("num变量的内容是:" + num);
        }
    

    静态初始化
    静态初始化不会直接指定长度,而是直接指定具体的元素内容
    标准格式
    数据类型[] 数组名称 = new 数据类型[] { 元素1, 元素2, 元素3, ... };

    标准格式也可以拆分成两个步骤
    数据类型[] 数组名称;
    数组名称 = new 数据类型[] {...};

    简便格式
    数据类型[] 数组名称 = { 元素1, 元素2, 元素3, ... };
    一旦使用了简便格式,必须一个步骤完成初始化,不能拆分成为两个步骤

    注意事项

    1. 虽然静态初始化没有指定长度,但是仍然可以根据具体元素的个数自动推算出来长度
    2. 虽然简便格式当中可以不写new...,但是仍然有内容当中开辟空间的过程
    3. 虽然直接指定了具体元素内容,但是仍然会有默认值会被替换的过程
        public static void main(String[] args) {
            int[] arrayA = new int[3];
            arrayA[0] = 10;
            arrayA[1] = 20;
            arrayA[2] = 30;
            System.out.println(arrayA[0]);
            System.out.println(arrayA[1]);
            System.out.println(arrayA[2]);
            System.out.println("===================");
            
            int[] arrayB = new int[] {15, 25, 35};
            System.out.println(arrayB);
            System.out.println(arrayB[0]);
            System.out.println(arrayB[1]);
            System.out.println(arrayB[2]);
            System.out.println("===================");
            
            int[] arrayC;
            arrayC = new int[] {13, 23, 33};
            System.out.println(arrayC);
            System.out.println(arrayC[0]);
            System.out.println(arrayC[1]);
            System.out.println(arrayC[2]);
            System.out.println("===================");
            
            int[] arrayD = {16, 26, 36};
            System.out.println(arrayD);
            System.out.println(arrayD[0]);
            System.out.println(arrayD[1]);
            System.out.println(arrayD[2]);
            System.out.println("===================");
            
            //错误写法,简便格式的静态初始化不能拆分成为两个步骤
    //      int[] arrayE;
    //      arrayE = {10 ,20, 30};
        }
    

    获取数组长度
    格式
    数组名称.length
    注意
    一个数组一旦在内存当中被创建了,那么数组的长度就不能发生改变。

        public static void main(String[] args) {
            int[] arrayA = { 3, 6, 4, 8, 6, 9, 3, 6, 2, 10, 100 };
            System.out.println(arrayA.length);
            
            int[] arrayB = new int[25];
            int len = arrayB.length;
            System.out.println(len);
        }
    

    code

    public class ArrayMin {
        public static void main(String[] args) {
            int[] array = { 5, 10, 15, 40, 30, 10000, 900, -200};
            
            int min = array[0];
            
            for (int i = 1; i < array.length; i++) {
                if (array[i] < min) {
                    min = array[i];
                }
            }
            
            System.out.println("最小值:" + min);
        }
    }
    ---------------------------------------------------------------------------------------------
    public class ArraySum {
        public static void main(String[] args) {
            int[] array = new int[6];
            array[0] = 100;
            array[1] = 80;
            array[2] = 150;
            array[3] = 50;
            array[4] = 90;
            array[5] = 200;
            
            int sum = 0;
            
            for (int i = 0; i < array.length; i++) {
                sum += array[i];
            }
            
            System.out.println("sum = " + sum);
        }
    }
    

    相关文章

      网友评论

          本文标题:数组

          本文链接:https://www.haomeiwen.com/subject/szjdghtx.html