原文連接:http://www.concretepage.com/java/jdk-8/java-8-stream-sorted-example
國外對Java8一系列總結的不錯, 翻譯過來給你們共享
這篇文章將會講解Java 8 Stream sorted()示例, 咱們可以以天然序或着用Comparator
接口定義的排序規則來排序一個流。Comparator
能用用lambada表達式來初始化, 咱們還可以逆序一個已經排序的流。
接下來咱們將會使用java 8 的流式sorted
排序List
、Map
、 Set
一、sorted()
默認使用天然序排序, 其中的元素必須實現Comparable
接口
二、sorted(Comparator<? super T> comparator)
:咱們能夠使用lambada 來建立一個Comparator
實例。能夠按照升序或着降序來排序元素。
下面代碼以天然序排序一個listcss
list.stream().sorted()
天然序逆序元素,使用Comparator
提供的reverseOrder()
方法java
list.stream().sorted(Comparator.reverseOrder())
使用Comparator
來排序一個listide
list.stream().sorted(Comparator.comparing(Student::getAge))
把上面的元素逆序this
list.stream().sorted(Comparator.comparing(Student::getAge).reversed())
咱們排序一組裝着Student
類對象的List
集合。 首先咱們使用天然序, 接着咱們使用Comparator
分別進行升序和降序:
SortList.javaspa
* Student.java *翻譯
* Output *code
---Natural Sorting by Name--- Id:1, Name: Mahesh, Age:12 Id:3, Name: Nilesh, Age:10 Id:2, Name: Suresh, Age:15 ---Natural Sorting by Name in reverse order--- Id:2, Name: Suresh, Age:15 Id:3, Name: Nilesh, Age:10 Id:1, Name: Mahesh, Age:12 ---Sorting using Comparator by Age--- Id:3, Name: Nilesh, Age:10 Id:1, Name: Mahesh, Age:12 Id:2, Name: Suresh, Age:15 ---Sorting using Comparator by Age with reverse order--- Id:2, Name: Suresh, Age:15 Id:1, Name: Mahesh, Age:12 Id:3, Name: Nilesh, Age:10