美文网首页
数组类型

数组类型

作者: 小疏林er | 来源:发表于2020-04-23 22:43 被阅读0次

    1、数组

    数组是编程语言中最常见的一种数据结构,可用于存储多个数据,每个数组元素存放一个数据,通常可数组元素的索引来进行对数组元素赋值和取值。
    要点:

    • 数组索引可理解为,当前元素到第一个元素的距离,所以索引是从零开始的(第一个元素到第一个元素的距离是0)。
    • 数组是一种引用类型的数据结构,一旦初始化完成,在内存中所占的空间就定下来了,因此数组长度不可更改。
    • 一个数组里只能存放一种数据类型的数据,但是,由于类之间可以支持多继承关系,这样可能产生一个数组存放多种数据类型的假象(水果数组里可能有苹果、香蕉桃子等等)。

    2、定义数组(声明)

    有两种方式声明数组,建议使用第一种。
    定义数组时不能指定数组长度。

    • type [ ] 数组名 ; //常用
    • type 数组名 [ ];

    3、数组的创建

    数组的创建可理解为开辟内存空间存放数组的值

    数据类型 [] 数组名;                   //数组的声明
    数组名 = new 数据类型 [数组长度];     //数组的创建
    //栗子
    int [] a ;
    a = new int [5];   //5是长度也叫大小  ,申请可存放5个int(4字节)类型大小的内存空间
    

    4、数组的初始化

    (1)静态初始化:初始化时由程序员显式指定每个元素的初始值,由系统决定数组长度。
    int[] id = new int[]{1000,1001,1002,1003};
    简化版:int[] id = {1000,1001,1002,1003};
    (2)动态初始化:初始化时程序员只设定数组的长度,由系统分配元素的初始值。
    int[] phone = new int[5];
    为动态初始化数组元素赋值:phone[0] = 1590000 ; phone[1] = 1580000;

    • 整数类型(byte、short、int、long)初始值为0。
    • 浮点类型(folat、double)初始值为0.0。
    • 字符类型(char)初始值为'\u0000'。
    • 布尔类型(boolean)初始值为false。
    • 引用类型(类、接口、数组、字符串等)初始值为null。

    5、几种常见的数组写法

    //1
    int [] a ;
    a = new int [5];
    a[0] = 1;       //......动态初始化
    //2
    int [] a = new int [5];
    a[0] = 1;       //......动态初始化
    //3
    int []d =new int [] {1,2,3,4,5};    //静态初始化
    //4
    int []e = {1,2,3,4,5};      //静态初始化
    

    6、数组的遍历和For-Each 循环

    • 数组的遍历 : 通过循环语句输出每个数组元素的值。
    • For-Each 循环 : For-Each 循环可以更简洁的遍历数组和循环,但是无法取出具体第几个元素,只能全取出来(for可以)。
    • 注:for循环和For-Each中的i不是相同意思,for中i是下标,For-Each是暂存数组元素的变量。
    for(type 暂存的形参变量  :  数组或集合名){
        //自动迭代访问每个元素
    }
    //  增强for循环,i是暂存变量(值),a是容器
    for (int i : a) {
        System.out.println(i);
    }
    //  i是下标,a.length是数组的长度
    for (int i = 0; i < a.length; i++) {
        System.out.println(a[i]);
    }
    System.out.println(a);      //内存地址
    System.out.println(a[1]);   //1是下标,默认是0(int类型的),占个位,不让垃圾回收器回收
    

    栗子:

    public class TestArray {
        public static void main(String[] args) {
            //静态初始化
            int[] id = new int[]{1000,1001,1002,1003};
            //动态初始化
            int[] phone = new int[5];
            
            System.out.println("使用循环进行赋值,通过遍历取值");
            for(int i=0;i<5;i++) {
                phone[i]=12580+i;
                System.out.println(phone[i]);
            }
            
            System.out.println("foreach循环");
            for(int temp : id) {
                System.out.println(temp);
            }
        }
    }
    

    结果图:

    image.png

    内存图:

    image.png

    多维数组:

    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,下面就类似一个9*2的二维数组int [][] a=new int[9][2]。(没地方了后面的七个就没画完)
    image.png

    相关文章

      网友评论

          本文标题:数组类型

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