实现代码:
package apilambda.d7_arrays;
import java.lang.reflect.Array;
import java.util.Arrays;
public class ArraysDemo1 {
public static void main(String[] args) {
//目标:学会Arrays常用API,并理解其原理
int[] arr={10,2,55,4,88,60};
System.out.println(arr);
//1.对数组进行排序
String rs= Arrays.toString(arr);
System.out.println(rs);
System.out.println(Arrays.toString(arr));
//2.排序API(默认自动对数组元素进行升序排序)
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//3.二分搜索技术(需要先排好才能支持,否则出bug)
int index=Arrays.binarySearch(arr,55);
System.out.println(index);
//若无此数据则返回负数:-(应该插入的位置索引+1)
int index2=Arrays.binarySearch(arr,5);
System.out.println(index2);
}
}
运行截图:
自定义数组排序规则
Arrays的sort方法对于有值的数组对默认升序排序,当需要进行降序排列时,就需要进行自定义数组排序。(定义Student数组,学会使用排序)
实现代码:
ArraysDemo1类:
package apilambda.d7_arrays;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;
public class ArraysDemo2 {
public static void main(String[] args) {
//目标:自定义数组排序规则
//1.Arrays的sort方法对于有值的数组对默认升序排序
int[] ages={34,12,42,23};
Arrays.sort(ages);
System.out.println(Arrays.toString(ages));
//2.降序排序(需要自己写)
Integer[] agse1={34,12,42,23};
Arrays.sort(agse1, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// //升序
// return o1-o2;
//降序
return o2-o1;
}
});
System.out.println(Arrays.toString(agse1));
System.out.println("--------------------------------------------");
Student[] students=new Student[3];
students[0]=new Student("小明",18,176.5);
students[1]=new Student("小王",28,186.5);
students[2]=new Student("小李",22,196.5);
Arrays.sort(students, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//按年龄升序
// return o1.getAge()- o2.getAge();
//按年龄降序
// return o2.getAge()- o1.getAge();
//按身高升序(Double.compare专门用来比较double类型的数据)
// return Double.compare(o1.getHeight(), o2.getHeight());
//按身高降序(Double.compare专门用来比较double类型的数据)
return Double.compare(o2.getHeight(), o1.getHeight());
}
});
System.out.println(Arrays.toString(students));
}
}
Student类:
package apilambda.d7_arrays;
public class Student {
private String name;
private int age;
private double height;
public Student() {
}
public Student(String name, int age, double height) {
this.name = name;
this.age = age;
this.height = height;
}
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;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", height=" + height +
'}';
}
}
运行截图: