# Arrays

# 介绍

用来操作数组的一个工具类。

# toString

接受任意数组

public class ArraysTest {

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 5};
        System.out.println(Arrays.toString(arr));
    }

}

# copyOfRange

拷贝数组,并指定范围(包前不包后) 拷贝的数组,结束索引是 index -1

public class ArraysTest {

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 5};

        int[] ints = Arrays.copyOfRange(arr, 1, 3);
        System.out.println(Arrays.toString(ints));
    }
}
//打印结果 :[2, 3]

# copyOf

拷贝数组并指定数组长度

public class ArraysTest {

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 5};

        int[] ints = Arrays.copyOf(arr, arr.length * 2);
        System.out.println(Arrays.toString(ints));
    }
}

//输出结果:[1, 2, 3, 4, 5, 5, 0, 0, 0, 0, 0, 0]

# setAll

更改原数组

public class ArraysTest {

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 5};
        //将原数组 * 2
        Arrays.setAll(arr, index -> arr[index] * 2);
        System.out.println(Arrays.toString(arr));
    }

}

# sort

排序

public class ArraysTest {

    public static void main(String[] args) {
        int[] arr = {8,54,7,2,41,5,4};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

# 自定义排序

  1. 实现 Comparable 接口
  2. 使用 lambda
public class ArraysTest {

    public static void main(String[] args) {
        Student arr[] = new Student[3];
        arr[0] = new Student(145, "张三");
        arr[1] = new Student(2456, "李四");
        arr[2] = new Student(35, "王五");


        Arrays.sort(arr, (p1, p2) -> p1.getAge() - p2.getAge());

        System.out.println(Arrays.toString(arr));
        
    }


    static class Student {
        private int age;

        private String name;

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

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "Student{" +
                    "age=" + age +
                    ", name='" + name + '\'' +
                    '}';
        }
    }
}