数组的定义、访问、常见操作以及Arrays类

                                          数组

1、定义:
    用于存储多个相同类型数据的存储模型。
2、格式:
    (1)数据类型[] 数组名;
    如:int[] arr;//定义了一个int类型的数组,数组名是arr
    (2)数据类型 数组名[];
    如:int arr[];//定义了一个int类型的变量,变量名是arr
3、初始化:只定义数组长度,由系统分配内存空间
    (1)动态初始化:
        //new关键字代表在内存空间中申请对应的内存,优先级别最高,也表示这是一个引用类型。
        格式:数据类型[] 数组名=new 数据类型[数组长度];
            数据类型[] 数组名;//声明数组
            数组名=new 数据类型[数组长度];//分配空间
        赋值:数组名[下标值];
            下标值(索引)特点:
                从0开始,连续,逐一增加、每次加一
        如:arr[0]=89;
    (2)静态初始化:
        格式:数据类型[] 数组名=new 数据类型[]{数据1、数据2、数据3....};
        如:int[] arr=new int[]{1,2,3};
            或int[] arr={1,2,3};
    
    (3)数组在初始化时,会为存储空间添加默认值
            整数(byte/short/int):0
            整数(long):0L
            浮点数(double):0.0
            浮点数(float):0.0f
            布尔数:false
            字符:空字符('\u0000')
        每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收。
4、内存分配:
    如:int[] arr=new int[3];//int[] arr分配在栈内存中,new int[]分配在堆内存中。
    
5、数组元素访问
        数组变量访问方式:
        格式:数组名
        数组内部保存的数据的访问
        格式:数组名[下标值]
6、数组操作常见问题
    索引越界:访问了数组中不存在的索引对应的元素,造成月结问题。
    空指针异常:访问的数组已经不再指向堆内存中的数据。
    null:空值,引用数据类型的默认值,表示不指向任何有效对象。
7、数组常见操作
    (1)数组长度计算:
        数组名.length;
    (2)遍历
        访问数组中每一个元素并输出在控制台
        格式:
        int[] arr={......}
        for(int x=0;x<arr.lengh;x++){
        System.out.println(arr[x]);
        }
    (3)使用增强for和fori遍历数组异同点
        在遍历数组功能方面,没有区别
        但增强for无法同时修改数组的元素值(应用于基本数据类型)
    (4)求最值的逻辑
        定义一个变量存储最值,让该变量与数组中每一个元素进行比较,
        如果该变量不满足最值逻辑,则该变量将该元素赋值为新值。
    (5)在一个有序数组中插入一个值,并保证数组依然有序的逻辑(插入逻辑)
        从后向前将该元素和数组中的元素依次比较(用循环实现)
        比该值小的元素,要想后移(a[i+]=a[i])
        如果元素比该值大,则该值插入在该元素的后方(a[i+1]=num)
        如果循环运行结束,该值都没有插入,则该值要插入在数组首位(a[0]=num)
        -->通过flag的方式来判断:是否循环结束都没有插入。
8、二维数组
    格式:
        int[][] array=new int[][]{{1,2,3},{1,2,3}}
    数组长度计算:
        行数:array.length;
        列数:array[行下标].length;//array[0].length;

                                    Arrays类

8、Arrays类
    8.1 定义:Arrays类是JDK中提供的用来操作数组的工具类,位于java.util包中。
    8.2 Arrays类常用方法
        (1)equals(array1,array2)
            返回值为boolean类型,比较两个数组是否相等
        (2)sort(array)
            返回void类型,对数组arraya中元素进行升序排列
        (3)toString(array)
            返回String类型,将一个数组转换成一个字符串
        (4)fill(array,val)
            返回void类型,把数组array的所有元素都赋值为val
        (5)copyOf(array,length)
            返回值类型与 数组类型一致,把数组array赋值成一个长度为length的新数组
        (6)binarySearch(array,val)//前提是数组为升序排列
            返回值为int类型,查询val元素在数组array中的下标
    8.3 Arrays类调用方法
        如:Arrays.sort(array);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值