# [Java] SORT 排序 ###### tags: `Java` `sql` ## Collections.sort ```=java import java.util.Comparator; List<Student> list = Arrays.asList(s1, s2, null, s3); Collections.sort(list, Comparator.nullsLast(Comparator.comparing(Student::getName))); ``` 參考資料: [Java Comparator.nullsLast](https://www.concretepage.com/java/java-8/java-comparator-nullslast) [Comparator nullsLast() method in Java with examples](https://www.geeksforgeeks.org/comparator-nullslast-method-in-java-with-examples/) ## Sort、Sort.Order - Sort ```=java import org.springframework.data.domain.Sort; Sort sort = Sort.by(Sort.Direction.DESC,"id"); sort.and(Sort.by(Sort.Direction.ASC,"name")); ``` - Sort.Order ```=java import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Order; Sort.Order order1 = Sort.Order.desc("id").nullsLast(); Sort.Order order2 = Sort.Order.asc("name").nullsLast(); Sort sort = Sort.by(order1, order2); ``` ```=java! Sort sort = Sort.by(new Sort.Order(Sort.Direction.DESC, "year", Sort.NullHandling.NULLS_LAST)) ``` ## Stream.sorted() 搭配 `Comparator.comparing` 可實現更複雜的排序方法 [肉豬: Java 8 使用Stream.sorted()對List物件進行排序範例](https://matthung0807.blogspot.com/2019/07/java-8-steamsortedlist.html) [【JDK8】排序策略的實作](https://openhome.cc/Gossip/CodeData/JDK8/Sort.html)