Arrays类
equals方法
比较数组中的内容是否相同
public class Demo {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4};
int[] b = {1, 2, 3, 4};
System.out.println(Arrays.equals(a, b));
}
}
sort方法
将数组中的元素进行排序,数组中的元素如果为引用类型,那么需要说明通过引用类型中的哪一个属性进行排序,因为对象和对象之间不能直接进行比较,只能是对象中的某一个属性进行比较并排序。
我们应对需要进行排序的对象所在的类进行说明,我们需要实现Comparable接口并重写接口中的compareTo方法,因为Arrays类在对引用类型的元素进行排序时会先将数组中的元素转换为Comparable类型并调用compareTo方法对元素进行比较。
compareTo方法的返回值类型为int类型,我们可以在方法中制定两个对象比较大小的规则,compareTo方法需要传入一个对象类型的参数,我们此时就可以使用this以及传入的对象这两个对象中的某一个属性来决定这两个对象的大小,如果返回值小于零代表后面的对象大于前面的对象,如果等于零代表两个对象相等,如果大于零代表前面的对象大于后面的对象。
public class Cat implements Comparable<Cat> {
int age;
public Cat(int age) {
this.age = age;
}
@Override
public int compareTo(Cat o) {
return this.age - o.age;
}
}
这里我是根据两个对象中的age属性来决定对象的大小
binarySearch方法
使用二分查找法查找数组中是否存在某一个元素,二分查找法的前提是数组得是有序的要不然使用二分查找后是有问题的,方法的返回值为int类型,如果为整数表示找到了并且返回了该元素所在的下标,如果为负数表示没有找到并返回如果需要插入该元素的话需要插入的位置。比如说如果返回值为-3,那么就表示该元素如果需要插入时,应该在数组的第三个位置。
copyOf方法
数组的复制,当当前数组的长度无法满足我们的需要时,我们需要对数组进行扩容并且将原来数组中的元素重写填入到新数组中,我们可以使用for循环一个一个填入,但是这样太麻烦,于是我们就可以使用Arrays中的copyOf方法,给定原来数组以及新数组的长度就可以返回一个新的数组。
public class Demo {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4, 5};
int[] b = Arrays.copyOf(a, 10);
System.out.println(Arrays.toString(b));
}
}
结果为: