进阶day04-接口回调分析(重点)
This commit is contained in:
38
javaSE-day04/src/com/inmind/interface_return03/Demo12.java
Normal file
38
javaSE-day04/src/com/inmind/interface_return03/Demo12.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package com.inmind.interface_return03;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Objects;
|
||||
|
||||
/*
|
||||
扩展-接口回调:我们可以通过接口回调的方式,将我们自定义的一些业务操作集成到底层源码中
|
||||
*/
|
||||
public class Demo12 {
|
||||
public static void main(String[] args) {
|
||||
Integer[] arr = {70,61,55,34,23};
|
||||
sort(arr, new Comparator<Integer>() {
|
||||
@Override
|
||||
public int compare(Integer o1, Integer o2) {
|
||||
// return o1-o2;//升序
|
||||
return o2-o1;//降序
|
||||
}
|
||||
});//默认升序的,但是我希望是降序怎么办???可以使用接口回调,将我们的业务嵌套到源码中
|
||||
System.out.println(Arrays.toString(arr));
|
||||
|
||||
}
|
||||
|
||||
//自定义一个类似Collections.sort方法,对整数数组进行排序的功能
|
||||
public static <A>void sort(A[] arr, Comparator<A> comparator) {
|
||||
for (int i = 0; i < arr.length - 1; i++) {//外层循环的趟数
|
||||
for (int j = 0; j < arr.length - 1 - i; j++) {//内层循环的次数
|
||||
//内层循环在比较时,相邻的2个比较,大的往后替换
|
||||
if (comparator.compare(arr[j],arr[j + 1]) > 0) {
|
||||
// if (arr[j] -arr[j + 1] < 0) {
|
||||
A temp = arr[j];//记录较大的值
|
||||
arr[j] = arr[j + 1];//将较小的值靠前
|
||||
arr[j+1] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user