进阶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