• 『Java』数组


    在学习数组之前先学习java.util.Arrays类中的一个静态方法Arrays.toString()

    该方法可以将传入的数组格式化为一个字符串,便于我们查看数组内容,例如:

    import java.util.Arrays;
    
    public class Dome001_Array {
        public static void main(String[] args) {
            int[] arr = new int[5]; // 定义一个数组
            
            for (int i = 0; i < 5; i++) { // 为每个元素赋值
                arr[i] = i + 2;
            }
    
            String res = Arrays.toString(arr);
            System.out.println(res);
        }
    }
    

    输出结果为:[2, 3, 4, 5, 6]

    数组的定义与初始化

    Java中数组索引从0开始。

    方法一

    定义方法:

    数据类型[] 数组名字 = new 数据类型[长度];
    

    例如:

    int[] arr1 = new int[10];
    String[] arr2 = new String[5];
    

    该种方式定义的数组如果不进行初始化,不同类型数组具有不同的默认值:

    import java.util.Arrays;
    
    public class Dome001_Array {
        public static void main(String[] args) {
            int[] arr1 = new int[5];
            System.out.println(Arrays.toString(arr1));
            // 输出:[0, 0, 0, 0, 0]
            // int数组默认值为0
    
            char[] arr2 = new char[5];
            System.out.println(Arrays.toString(arr2));
            // 输出:[ ,  ,  ,  ,  ]
            // char默认值为u0000
    
            double[] arr3 = new double[5];
            System.out.println(Arrays.toString(arr3));
            // 输出:[0.0, 0.0, 0.0, 0.0, 0.0]
            // double默认值为0.0
    
            String[] arr4 = new String[5];
            System.out.println(Arrays.toString(arr4));
            // 输出:[null, null, null, null, null]
            // 引用类型默认值为空(null)
        }
    }
    

    方法二

    数据类型[] 数组名字 = new 数据类型[] {元素1, 元素2 ...};
    

    第二个[]中不能写长度值,{元素1, 元素2 ...}是数组中存放的元素值,类型要跟数据类型[]中的一致。

    例如:

    import java.util.Arrays;
    
    public class Dome001_Array {
        public static void main(String[] args) {
            int[] arr = new int[]{1, 2, 3};
            System.out.println(Arrays.toString(arr));
            // 输出:[1, 2, 3]
        }
    }
    

    方法三

    数据类型[] 数组名字 = {元素1, 元素2 ...};
    

    例如:

    import java.util.Arrays;
    
    public class Dome001_Array {
        public static void main(String[] args) {
            int[] arr = {1, 2, 3};
            System.out.println(Arrays.toString(arr));
            // 输出:[1, 2, 3]
        }
    }
    

    数组的长度属性

    每个数组都有长度,而且是【固定】的,通过数组名.length可获得数组的长度。

    public class Dome001_Array {
        public static void main(String[] args) {
            int[] arr = {1, 2, 3};
            int len = arr.length;
            System.out.println(len); // 3
        }
    }
    

    数组常见异常

    数组越界异常

    public class Dome001_Array {
        public static void main(String[] args) {
            int[] arr = new int[10];
            arr[10] = 1;
        }
    }
    

    产生ArrayIndexOutOfBoundsException数组越界异常:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10
    	at cn.xxmmqg.Array.Dome001_Array.main(Dome001_Array.java:8)
    

    空指针异常

    public class Dome001_Array {
        public static void main(String[] args) {
            int[] arr = new int[10];
            arr = null;
            int len = arr.length;
        }
    }
    

    产生NullPointerException空指针异常:

    Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because "arr" is null
    	at cn.xxmmqg.Array.Dome001_Array.main(Dome001_Array.java:9)
    
  • 相关阅读:
    使用Ant Design的Table和Checkbox模拟Tree
    js中的按位取反运算符~
    Antd的Table组件嵌套Table以及选择框联动
    antd的Select,DatePicker,Cascader等组件选项框随页面滚动的问题解决
    Promise简介以及常用方法
    js一键复制文本
    react中使用pre标签不生效的解决方法
    使用html2canvas将html通过canvas转换成图片
    谷歌浏览器新开页面进程问题
    如何使用Context
  • 原文地址:https://www.cnblogs.com/xxmmqg/p/14413508.html
Copyright © 2020-2023  润新知