目录
1. 将数组转成集合对象
2. 在数组中二分查找指定元素key
3. 将数组的一部分拷贝出来( newLength 这个是从被拷贝数组头元素开始算)
4. 将数组的一部分指定范围拷贝出来(有区别于上面)
5. 判断两个数组是否相等(内部元素是否完全相同)个人感觉有点鸡肋
6. 将数组所有元素用指定元素替换(相当于初始化操作)
7. 将数组的指定位置元素用指定元素替换(相当于部分初始化操作)
8. 将数组进行内部排序 个人为这个 api 疯狂打 call(虽然对数组排序不难,但是我还是不想写,嘻嘻,用 api 老爽了 !)
9. 将数组进行输出操作 (用于调试的时候,特别方便)
API: List
举例?:
String[] words = new String[]{"I", "Love", "China", "!"};
List numberList = Arrays.asList(words);
API: int binarySearch(int[] a, int key);
举例?:打印结果为,查找的元素在数组中的角标位置
int[] numbers = new int[]{1, 2, 3, 4, 5, 6};
System.out.println(Arrays.binarySearch(numbers, 5));
注意点?:对于自定义对象类型(非数值、非字符、等),需要添加比较器,例如?:对于自定义person数组的二分查找
class PersonComparator implements Comparator{
@Override
public int compare(Person o1, Person o2) {
return o1.age - o2.age;
}
}
class Person{
String name;
int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
public class Main {
public static void main(String[] args) {
Person[] persons = new Person[]{new Person("张三", 10), new Person("李四", 12), new Person("王五", 16)};
System.out.println(Arrays.binarySearch(persons, new Person("王五", 16), new PersonComparator()));
}
}
API: T[] copyOf(T[], int newLength);
String[] words = new String[]{"I", "Love", "China", "!"};
String[] subWords = Arrays.copyOf(words, 2);
API: T[] copyOfRange(T[], int from, int to);
String[] words = new String[]{"I", "Love", "China", "!"};
String[] subWords = Arrays.copyOfRange(words, 1, 3);
温馨提示:Java关于数组等等的操作,都是包含头不包含尾,例如?面的代码,1,3 得到的 subWords = {"Love", "China"}
API: boolean equals(T[], T[]);
String[] words = new String[]{"I", "Love", "China", "!"};
String[] another = new String[]{"I", "Love", "China", "!!!"};
System.out.println(Arrays.equals(words, another));
注意点:如果比较的是两个自定义对象数组,对于自定义的对象要复写自身的 equals 方法
API: void fill(T[], T);
String[] words = new String[]{"I", "Love", "China", "!"};
Arrays.fill(words, "Yes");
API: void fill(T[], int fromIndex, int toIndex, T);
String[] words = new String[]{"I", "Love", "China", "!"};
Arrays.fill(words, 1, 2, "Yes");
API: void sort(T[]); 排序方式:默认是从小到大
API: void sort(T[], comparator);自定义对象数组,需要给出比较器才能进行排序操作,比较器写法参照第二点
API: void sort(T[], int fromIndex, int toIndex); 指定部分排序
int[] numbers = new int[]{1, 3, 2, 5, 4};
Arrays.sort(numbers);
注意点:如果对自定义的对象数组进行排序的时候,需要写比较器,具体的比较器写法参照上面第二点
API: String toString(T[]);
int[] numbers = new int[]{1, 3, 2, 5, 4};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));
注意点:如果是对自定义的对象数组调用 Arrays.toString() 方法时,数组中的元素自身要实现 toString()方法