Arrays的一些基本使用

int[] arr = {10,30,50,99,44};

//2. 排序的API(默认自动对数组元素进行了升序排序)
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));

//3.二分搜索技术(前提数组必须排好序才支持, 否则出bug)
int index = Arrays.binarySearch(arr,99);
System.out.println(index);

//返回不存在的元素规律 : - (因该插入的位置索引+1)
int index2 = Arrays.binarySearch(arr,9985);//-7
System.out.println(index2);

//注意: 数组如果没有排好序, 可能会找不到存在匀速, 从而出现bug
//因为从中间开始比较
int[] arr2 = {12, 36, 34, 25, 13, 24, 234, 100};
System.out.println(Arrays.binarySearch(arr2,36));
=====================================================

/*
1. 被排序的数组必须是引用类型的元素
2.匿名内部类对象, 代表了一个比较器对象
*/
// Integer[] arr2 = {12, 36, 34, 25, 13, 24, 234, 100};
// Arrays.sort(arr2, new Comparator<Integer>() {
// @Override
// public int compare(Integer o1, Integer o2) {
// //指定规则
// return o1-o2;//默认升序
// //retuen o2-o1;//降序
// }
// });
// System.out.println(Arrays.toString(arr2));
Student[] arr = new Student[3];
arr[0] = new Student("小样",13,171);
arr[1] = new Student("小黄",11,168);
arr[2] = new Student("小海",12,174);
Arrays.sort(arr, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//return o1.getAge()- o2.getAge();//按照年龄升序排
return Double.compare(o1.getHeight(), o2.getHeight());//按照身高升序
//Double类的API
}
});

posted on 2022-03-21 23:21  我要当程序源  阅读(39)  评论(0)    收藏  举报

导航