[ Java ] 最通俗易懂的 数组 讲解

数组定义


数组的动态初始化

  • 声明并初始化数组:
  • 数据类型 数组名称[] = new 数据类型[长度];
  • 数据类型[] 数组名称 = new 数据类型[长度];
int[] arr = new int[5]; // 推荐
int arr1[] = new int[5];

数组的静态初始化

  • 在数组定义的时候就为其设置好了里面的内容
  • 简化格式:数据类型 数组名称[] = {数据1,数据2,数据3... };
  • 完整格式:数据类型 数组名称[] = new 数据类型[]{数据1,数据2,数据..};
int[] arr = new int[]{1,2,3};  // 推荐
int[] arr1 = {1,2,3};

数组内存分析


public class Demo {
    public static void main(String[] args) {
        int[] data = new int[3];
        data[0] = 10;
        data[1] = 20;
        data[2] = 30;
        System.out.println(Arrays.toString(data));
    }
}

在这里插入图片描述

数组引用传递分析


public class Demo {
    public static void main(String[] args) {
        int[] data = new int[]{10, 20, 30};
        test(data);
        System.out.println(Arrays.toString(data));
        // [99, 20, 30]
    }

    public static void test(int[] temp) {
        temp[0] = 99;
    }
}

在这里插入图片描述

对象数组内存分析


public class Demo {
    public static void main(String[] args) {
        Persion[] per = new Persion[3];
        per[0] = new Persion("张三", 20);
        per[1] = new Persion("李四", 20);
        per[2] = new Persion("王五", 20);
        for (Persion p : per) {
            System.out.println(p.toString());
        }
        // name: 张三 age: 20
        // name: 李四 age: 20
        // name: 王五 age: 20
    }
}

class Persion {
    private String name;
    private int age;

    public Persion(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "name: " + name + " age: " + age;
    }
}

在这里插入图片描述

Arrays 类常用方法

public class Demo {
    public static void main(String[] args) {
        // 数组遍历
        int[] arr = new int[]{1, 2, 3, 4, 5, 6};
        System.out.println(Arrays.toString(arr));// [1, 2, 3, 4, 5, 6]

        // 数组排序
        int[] arr1 = new int[]{5, 2, 8, 3, 19, 4};
        Arrays.sort(arr1);
        System.out.println(Arrays.toString(arr1));// [2, 3, 4, 5, 8, 19]

        // 数组比较
        System.out.println(Arrays.equals(arr, arr1));// false

        // 数组查找(二分查找,传入的数组得有序)
        System.out.println(Arrays.binarySearch(arr, 4));// 3
    }
}

方法可变参数

  • 本质上仍然是一个数组
public class Demo {
    public static void main(String[] args) {
        test(1, 2, 3, 4, 5, 6);
    }
    public static void test(int... arr) {
        System.out.println(Arrays.toString(arr));
        // [1, 2, 3, 4, 5, 6]
    }
}

参考链接:国内最新JAVA10培训课堂 [by 魔乐科技]


在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页