进阶day04-接口回调分析(重点)

This commit is contained in:
2026-02-03 15:26:40 +08:00
parent 9f9348ae5e
commit bfd4325ca5

View 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;
}
}
}
}
}