数组

作者: 冯宏志 | 来源:发表于2020-11-23 23:24 被阅读0次

数组

一维数组
  • 初始化
    分为静态初始化和动态初始化
package com.atguigu.contact;

public class ArrayTest { 
    public static void main(String[] args) {
        int[] ids;  //声明
        ids = new int[]{1001,1002,1003,1004};//静态初始化。初始化和赋值同时进行
        String[] names = new String[5];//动态初始化,初始化和赋值分开进行
        //对数组赋值     
        names[0] = "小明";
        names[1] = "小红";
        names[2] = "小军";
        names[3] = "小方";
        //获取数组长度            
        System.out.println(ids.length);
        //遍历数组元素
        for(int i = 0;i < names.length;i++)
            System.out.println(names[i]);
    }

}

总结:数组一旦初始化完成,其长度确定

  • 数组元素的默认初始化值
    整形:0
    浮点型:0.0
    char型:0或'\u0000'而非‘0’
    boolean:false
    引用数据类型(如String):null

  • 数组的内存解析


    image.png
二维数组
  • 初始化
package com.atguigu.contact;

public class ArrayTest1 {
    public static void main(String[] args) {
        //静态初始化
        int[][] arr = new int[][] {{1,2,3},{4,5},{6,7,8}};
        //动态初始化1
        int[][] arr1 = new int[3][2];
        //动态初始化2
        int[][] arr2 = new int[3][];
        //错误的情况
//      String [][] arr3 = new String[][3];
//      String [4][3] arr4 = new String[][];
//      int [][] arr5 = new int[4][3] {{1,,2,3},{4,5},{6,7,8}};
    }
}
 
  • 数组元素的默认初始化值
    针对初始化方式一:比如: int[][] arr = new int[4][3];
    外层元素的初始化值为:地址值
    内层元素的初始化值为:与一维数组初始化情况相同
    针对初始化方式二:比如 int[][] arr = new int[4][]
    外层元素的初始化值为:null
    内层元素的初始化值为;不能调用,否则报错

  • 二维数组内存解析


    image.png
深复制与浅复制
  • 浅复制:只是把数组的地址复制了
  • 深复制:真正的复制
package com.atguigu.contact;

public class ArrayTest2 {
    public static void main(String[] args) {
        int[] array1,array2,array3;
        array1 = new int[]{1,2,3,4,5};
        //  浅复制
        array2 = array1;
        array1[0] = 10;
        for(int i = 0;i<array1.length;i++)
        {
            System.out.print(array1[i]);//10 2 3 4 5
            System.out.print(array2[i]);//10 2 3 4 5
        }
        array3 = new int[array1.length];
        //  深复制 
        for(int i = 0;i<array1.length;i++)
        {
            array3[i] = array1[i];
            System.out.println(array3[i]);
        }
    } 
}

Arrays工具类的使用

  • boolean equals(int[] a,int[] b) //判断两数组是否相等
    String toString(int[] a) //输出数组信息
    void fill(int[] a,int val) //将指定值填充到数组之中
    void sort(int[] a) //对数组进行排序
    int binarySearch(int[] a,int key) //对排序后的数组进行二分法检索指定的值
package com.atguigu.contact;

import java.util.Arrays;

public class ArrayTest3 {
    public static void main(String[] args) {
        //boolean equals(int[] a,int[] b)判断两数组是否相等
        int[] arr1 = new int[]{1,2,3,4};
        int[] arr2 = new int[]{1,3,2,4};
        boolean isEqual = Arrays.equals(arr1, arr2);
        System.out.println(isEqual);//false
        //String toString(int[] a)输出数组信息
        System.out.println(Arrays.toString(arr1));//[1, 2, 3, 4]
        //void fill(int[] a,int val)将指定值填充到数组之中
        Arrays.fill(arr1, 5);
        System.out.println(Arrays.toString(arr1));//[5, 5, 5, 5]
        //void sort(int[] a)对数组进行排序
        int[] arr3 = new int[] {5,3,6,7,8,1,10};
        Arrays.sort(arr3);
        System.out.println(Arrays.toString(arr3));//[1, 3, 5, 6, 7, 8, 10]
        //int binarySearch(int[] a,int key)对排序后的数组进行二分法检索指定的值
        System.out.println(Arrays.binarySearch(arr3, 3));
    }
}

数组常见异常

1.数组角标越界异常:ArrayIndexOutOfBoundsException
2.空指针异常:NullPointerException


image.png

相关文章

  • 数组

    数组数组数组数组数组数组数组数组数组

  • JavaScript - 5.数组<增删改查>

    数组 Array 数组 - 增 数组 - 删 / 改 数组 - 查 数组 - 自动 toString() 数组 -...

  • PHP数组使用

    数组定义 数组增、删、改 数组查询 数组排序 数组合并、分割 数组比较、去重复 数组长度 数组遍历 数组转换 其他...

  • 》》》PHP初入---(三)

    数组定义 1.索引数组:数组下标是整型的 声明数组: 访问数组: count(数组)--获取数组长度 查看数组所有...

  • JavaScript中数组的常用操作

    数组的遍历 数组的映射 数组的简化 数组的连接 获取数组的片段 数组的拷贝 查找数组 数组去重

  • JavaSE之数组

    六、数组 目录:数组概述、数组声明创建、数组使用、多维数组、Array类、稀疏数组 1.什么是数组 数组的定义:数...

  • Shell数组、关联数组

    数组 定义数组 获取数组 关联数组 定义关联数组 获取关联数组

  • 学习Java第五天

    数组是多个数据的集合 数组的语法 数组元素类型【】 数组名; 多维数组: 数组元素类型【】【】 数组名; 多维数组...

  • php基础精粹

    PHP php数组 php数组之索引数组初始化 PHP数组之索引数组赋值 PHP数组之访问索引数组内容 PHP数组...

  • C语言的惯用集

    数组部分 数组部分 清空数组a 把数据读进数组a 对数组a求和

网友评论

      本文标题:数组

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