Collections.sort();—排序方法–双轴快速排序
Arrays.sort()—归并排序
public static void main(String[] args) {
List<Apple> appleList = new ArrayList<Apple>(){{
add(new Apple("green", 162));
add(new Apple("green", 163));
add(new Apple("green", 160));
add(new Apple("green", 161));
}};
// Collections.sort();---排序方法--双轴快速排序
// Arrays.sort()---归并排序
//sort方法时接口List提供的
//Comparator > 0 则swap--->> o1-o2>0--升序
//1.8之前的常规方法--匿名类
Collections.sort(appleList,
new Comparator<Apple>() {
@Override
public int compare(Apple o1, Apple o2) {
return o1.getWeight() - o2.getWeight();
}
});
//1.8 list自带的sort方法
appleList.sort(new Comparator<Apple>() {
@Override
public int compare(Apple o1, Apple o2) {
return o1.getWeight() - o2.getWeight();
}
});
//降序--1.8 lambda表达式
appleList.sort((Apple o1, Apple o2)->(o2.getWeight() - o1.getWeight()));
appleList.sort((a1,a2) -> (a2.getWeight() - a1.getWeight()));
//下面行等价于=>appleList.sort((Apple o1, Apple o2)->(o1.getWeight() - o2.getWeight()))
//升序-方法引用
appleList.sort(comparing(Apple::getWeight));
//降序
appleList.sort(comparing(Apple::getWeight).reversed());
}