import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
/**
* @ClassName Demo
* @Description Lambda表达式--List.sort()排序
* @author TianJianWen
* @data 2019年11月14日下午3:27:26
*
*/
public interface Demo_List_Sort {
public static void main(String[] args) {
// List.sort() 排序
List<Person> list = new ArrayList<>();
list.add(new Person(3));
list.add(new Person(1));
list.add(new Person(8));
list.add(new Person(7));
list.add(new Person(5));
System.err.print("默认顺序:");
for (Person person : list) {
System.out.print(person.getHeight()+", ");
}
System.err.println();
// 1.传统方式使用 - 升序
list.sort(new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
// o1和o2比较 1:大于 0:相等 -1:小于
// 颠倒结果就是降序
return o1.getHeight().compareTo(o2.getHeight());
}
});
System.err.print("传统方式顺序:");
for (Person person : list) {
System.out.print(person.getHeight()+", ");
}
System.err.println();
/**
* 2.Lambda使用
*/
// - 降序
list.sort((o1, o2) -> o2.getHeight().compareTo(o1.getHeight()));
System.err.print("Lambda表达式》降序顺序:");
for (Person person : list) {
System.out.print(person.getHeight()+", ");
}
// - 升序
System.err.println();
list.sort((o1, o2) -> o1.getHeight().compareTo(o2.getHeight()));
System.err.print("Lambda表达式》升序顺序:");
for (Person person : list) {
System.out.print(person.getHeight()+", ");
}
}
}
class Person {
public Person(Integer height) {
this.height = height;
}
private Integer height;
public Integer getHeight() {
return height;
}
public void setHeight(Integer height) {
this.height = height;
}
}