stream_排序
- sorted() 自然排序(comparable)
- sorted(Comparator com) 定制排序(Comparator)
List<Book> books = Arrays.asList(
new Book("java面向对象编程", 80D),
new Book("第一本Docker书", 65D),
new Book("大话设计模式", 45D),
new Book("SpringSecurity实战", 80D),
new Book("Kubernetes权威指南", 80D)
);
/**
* 排序
* sorted() 自然排序
* sorted(Comparator com) 定制排序
*/
@Test
public void test6() {
List<String> list = Arrays.asList("ccc", "ddd", "aaa", "eee", "bbb");
list.stream()
.sorted()
.forEach(System.out::print);
// 结果: aaabbbcccdddeee
books.stream()
.sorted((b1, b2) -> {
//先按价格排序,价格相同按名称排
if(b1.getPrice() == b2.getPrice()){
return b1.getTitle().compareTo(b2.getTitle());
}else{
return b1.getPrice().compareTo(b2.getPrice());
}
}).forEach(System.out::println);
/* 结果
Book(id=null, name=null, title=大话设计模式, desc=null, price=45.0)
Book(id=null, name=null, title=第一本Docker书, desc=null, price=65.0)
Book(id=null, name=null, title=java面向对象编程, desc=null, price=80.0)
Book(id=null, name=null, title=SpringSecurity实战, desc=null, price=80.0)
Book(id=null, name=null, title=Kubernetes权威指南, desc=null, price=80.0)
*/
}