package test02;
import java.util.Arrays;
import java.util.Comparator;
/**
* @Author: xia
* @Date: 2023-06-27 18:36
* @Description: 模拟排序
*/
public class ArraysCustom {
public static void main(String[] args) {
int[] arr = {-1,56,20,-99,47};
bubble(arr, new Comparator() {
@Override
public int compare(Object o1, Object o2) {//匿名内部类,重写方法
int i1 = (Integer)o1;//向下转型,拆箱
int i2 = (Integer)o2;
return i1 - i2;//i1 - i2 > 0 表示按升序排序,反过来表示按降序排序
}
});
System.out.println("自定义排序后:");
System.out.println(Arrays.toString(arr));
// bubble(arr, new Comparator<Integer>() {//同样可以实现
// @Override
// public int compare(Integer o1, Integer o2) {
// return o1 - o2;
// }
// });
}
public static void bubble(int[] arr, Comparator c){
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for(int j = 0; j < arr.length - i - 1; j++){
if(c.compare(arr[j],arr[j+1])>0){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}