JAVA数组----引用数据类型

1.数组初始化

1.1 动态初始化(声明并开辟空间)
数组类型[] 数组名称 = new 数组类型[长度]
例:开辟一个长度为5的字符型数组:

char[] arr = new char[5];
  1. 数组是通过下标索引来取得元素,下标默认从0开始,数组下标超过数组长度就会发生数组越界异常(属于运行时异常)。
  2. 数组中每个元素都有默认值,默认值是该数组的类型默认值
  3. 数组名称.length:取得数组长度。
  4. for-each循环(仅限于数组内容读取,不能修改数组内容)
for(int x : arr){   //等价于for(int i = 0; i < arr.length;i++)
            System.out.println(x + " ");  //等价于System.out.println(data[i] + " ");
        }

数组属于引用数据类型,必须在使用前先初始化,否则会抛出NullPointerException异常(属于运行时异常)。
1.2 数组静态初始化
数据类型[] 数组名称 = new 数据类型{值,值,…}
例:

int[] data = new int{1, 2, 3, 4};

在数组定义的时候直接设置值,根据值的个数确定数组长度,数组长度一旦确定是不可改变的。

2.JAVA对数组的支持

  1. 排序
    java.util.Arrays.sort(数组名称);----支持所有基本数据类型
    例:
public class Test{
    public static void main(String[] args){
        String[] arr = new String[]{"张三", "王五", "李四"};
        java.util.Arrays.sort(arr);
        for(String str : arr){
            System.out.println(str);
        }
    }
}

在这里插入图片描述
2. 数组的部分拷贝

System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度)

例:


public class Test{
    public static void main(String[] args){
        String[] str1 = new String[]{"张三", "李四", "王五", "蛋哥"};
        String[] str2 = new String[]{"鹏哥", "哈哈", "呵呵"};
        System.arraycopy(str1,1,str2,2,1);
        for(String str : str2){
            System.out.println(str);
        }
    }
}

在这里插入图片描述
3. 数组全拷贝

java.util.Arrays.copyOf(源数组名称,新数组长度)----java动态数组动态扩容

例:

public class Test{
    public static void main(String[] args){
        String[] str1 = new String[]{"张三", "李四", "王五", "蛋哥"};
        System.out.println(java.util.Arrays.copyOf(str1, 10).length);
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/huaijiu123/article/details/84571255