一、語法與功能
List.Sort() 方法用來對List中的元素進行排序,可以用 lambda 表達式或者 Comparator 實現自定義排序。調用 syntax 如下:
List.sort(Comparator c)
其中的 c 是按照指定的排序規則進行排序,可以為 lambda 表達式或者 Comparator 對象。
二、使用教程
1. 使用升序排序
對於基本類型,可以使用 {@code Collections.sort} 進行排序,對於自定義類型,需要實現 {@code Comparable} 介面並重寫 {@code compareTo} 方法。
List stringList = Arrays.asList("cat", "dog", "apple", "banana"); Collections.sort(stringList); // 升序排序 System.out.println(stringList); // [apple, banana, cat, dog] List integerList = Arrays.asList(2, 8, 1, 4); Collections.sort(integerList); System.out.println(integerList); // [1, 2, 4, 8] class Student implements Comparable{ private String name; private int score; public Student(String name, int score){ this.name = name; this.score = score; } @Override public int compareTo(Student o) { return score - o.score; } } List studentList = new ArrayList(); studentList.add(new Student("Tom", 80)); studentList.add(new Student("Jerry", 60)); studentList.add(new Student("Bob", 70)); Collections.sort(studentList); System.out.println(studentList); // [{name=Jerry, score=60}, {name=Bob, score=70}, {name=Tom, score=80}]
2. 使用降序排序
使用升序排列的代碼僅需將 Collections.sort 更改為 Collections.reverse()即可。
Collections.sort(stringList, Collections.reverseOrder()); System.out.println(stringList); // [dog, cat, banana, apple] Collections.sort(integerList, Collections.reverseOrder()); System.out.println(integerList); // [8, 4, 2, 1] Collections.sort(studentList, Collections.reverseOrder()); System.out.println(studentList); // [{name=Tom, score=80}, {name=Bob, score=70}, {name=Jerry, score=60}]
3. 使用自定義比較器
使用自定義比較器可以對任意類型進行排序。
List stringList = Arrays.asList("cat", "dog", "apple", "banana"); stringList.sort((a, b) -> a.length() - b.length()); System.out.println(stringList); // [cat, dog, apple, banana] List integerList = Arrays.asList(2, 8, 1, 4); integerList.sort((a, b) -> b - a); System.out.println(integerList); // [8, 4, 2, 1] List studentList = new ArrayList(); studentList.add(new Student("Tom", 80)); studentList.add(new Student("Jerry", 60)); studentList.add(new Student("Bob", 70)); studentList.sort(Comparator.comparing(Student::getName)); System.out.println(studentList); // [{name=Bob, score=70}, {name=Jerry, score=60}, {name=Tom, score=80}]
三、總結
Java List.Sort() 方法是一個非常有用的方法,可以對 List 中的元素按照指定規則進行排序。通過本文的介紹,相信大家已經掌握了其使用方法,並且可以根據需要實現自定義排序規則。
原創文章,作者:DABLT,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372767.html