Comparator.naturalOrder() 自然排序


import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Stream;

public class Test1 {
    /*
    Comparator.naturalOrder() 方法返回一個比較器,該比較器以自然順序比較可比較對象
    說明如何使用Comparator.naturalOrder與Stream.sorted、Collections.sort、List.sort和Arrays.sort一起對對象的集合進行自然排序。
     */
    public static void main(String[] args) {
        // Java 8中引入的Comparator.naturalOrder方法返回一個比較器,該比較器以自然順序比較可比較對象
        List<Integer> numList = Arrays.asList(12, 10, 15, 8, 11);
        // 8 10 11 12 15 
        
        // Stream.sorted返回一個由這個流的元素組成的流,根據提供的比較器進行排序
        numList.stream().sorted(Comparator.naturalOrder()).forEach(n-> System.out.print(n+" "));
        System.out.println("\n---------------------------");
        // 自然排序
        List<String> strList = Arrays.asList("Varanasi", "Allahabad", "Kanpur", "Noida");
        strList.stream().sorted(Comparator.naturalOrder()).forEach(s -> System.out.print(s + " "));
        System.out.println("\n---------------------------");
        // 反向
        strList.stream().sorted(Comparator.reverseOrder()).forEach(s -> System.out.print(s + " "));
        System.out.println("\n---------------------------");
        
        // Collections.sort根據給定的比較器實例對指定的列表進行排序
        Collections.sort(numList, Comparator.naturalOrder());
        numList.forEach(n -> System.out.print(n + " "));
        System.out.println("\n---------------------------");
        
        // List.sort根據給定的比較器實例對這個列表進行排序
        numList.sort(Comparator.naturalOrder());
        numList.forEach(n -> System.out.print(n + " "));
        System.out.println("\n-----------");
        
        // Arrays.sort根據指定的比較器引起的順序對指定的對象陣列進行排序
        Integer[] array = {12, 10, 15, 8, 11};
        // public static <T> void sort(T[] a, Comparator<? super T> c)
        Arrays.sort(array, Comparator.naturalOrder());
        for (Integer integer : array) {
            System.out.print(integer+" ");
        }
    }
}

學習摘錄:https://mp.weixin.qq.com/s/eHpr84Apj4glyFCAlfxKPQ


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM