zoukankan      html  css  js  c++  java
  • 『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)
    
  • 相关阅读:
    AJAX聊天室小DEMO(讨厌JS,IE下有问题已解决)
    [ZT]线索二叉树(C#数据结构五)
    栈(C#数据结构学习二)
    eclipse 安装 resin 3 步骤
    解决全局utf8编码下asp.net接收gb2312乱码的问题
    模板里的控件要用FindControl(id)方法读取
    OpenSessionInView
    asp:button控件调用js函数不刷新方法
    OFFICE 出现“正在配置”的解决方法
    开发经验
  • 原文地址:https://www.cnblogs.com/xxmmqg/p/14413508.html
Copyright © 2011-2022 走看看