Arrays工具类
Arrays工具类提供了一些操作数组的静态方法。
import java.util.Arrays;
import java.util.Objects;
public class ArraysDemo01 {
public static void main(String[] args) {
//static int compare(int[] a, int[] b)
int[] arr = {1,2,3,4,7,6,5};
int[] arr3 = {1,2,3,4,7,6,5};
int[] arr2 = {1,2,333,4,5,666};
System.out.println(Arrays.compare(arr,arr2));
System.out.println(Arrays.compare(arr,arr3));
String[] s1 ={"ab"};
String[] s2 ={"AB"};
System.out.println(Arrays.compare(s1,s2));
System.out.println(Arrays.compare(s2,s1));
//static int[] copyOf(int[] original, int newLength) 截取 拷贝 填充,默认从索引为0的位置开始
System.out.println(Arrays.toString(Arrays.copyOf(arr,4)));
System.out.println(Arrays.toString(Arrays.copyOf(arr,14)));
System.out.println(Arrays.toString(Arrays.copyOf(arr,7)));
//static int[] copyOfRange(int[] original, int from, int to) 将指定数组的指定范围复制到新数组中。结束索引不包含
System.out.println(Arrays.toString(Arrays.copyOfRange(arr,4,6)));
//static boolean equals(boolean[] a, boolean[] a2)
//static boolean deepEquals(Object[] a1, Object[] a2) 深层比较是否相等,针对于多维数组
System.out.println(Arrays.equals(arr,arr3));
System.out.println(Arrays.equals(arr,arr3));
Student[][] stus1 = {
{
new Student("zhangsan",18),
new Student("lisi",19)
},
{
new Student("wangwu",17)
}
};
Student[][] stus2 = {
{
new Student("zhangsan",18),
new Student("lisi",19),
},
{
new Student("wangwu",17)
}
};
//比较内层的内一个小数组的地址是否相等
System.out.println(Arrays.equals(stus1,stus2));
//比较二位数组中每一个具体的学生对象数据是否相等,如果Student中重写equals方法比较内容,否则比较每一个Student对象的地址
System.out.println(Arrays.deepEquals(stus1,stus2));
//toString
System.out.println(Arrays.toString(stus1));
//以字符串的形式打印多维数组中数据deepToString
System.out.println(Arrays.deepToString(stus1));
//fill 填充
Arrays.fill(arr3,100);
System.out.println(Arrays.toString(arr3));
//指定区间使用定值填充,结束索引不包含
Arrays.fill(arr3,1,3,1000);
System.out.println(Arrays.toString(arr3));
//static int mismatch(boolean[] a, boolean[] b) 查找两个数组中第一个不相等的数据的索引
System.out.println(Arrays.mismatch(arr,arr2));
//static void sort(int[] a, int fromIndex, int toIndex) 按升序对数组的指定范围进行排序。
Arrays.sort(arr,4,7);
System.out.println(Arrays.toString(arr));
//static int binarySearch(int[] a, int key) 使用二进制搜索算法在指定的int数组中搜索指定的值。要求前提升序排序
System.out.println(Arrays.binarySearch(arr,10)); //打印-8 -插入点-1
}
}
class Student{
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}
}