Java 8 對(duì) List的排序

1.按照字母順序排序字符串

 /**
 * String sort(不區(qū)分大小寫)
 */
private static void sortStringInsentive() {
    List<String> originalList = Arrays.asList("Apache", "apache", "aapache", "bpache", "Bpache", "bapache");
    originalList.sort(String.CASE_INSENSITIVE_ORDER);
    System.out.println(originalList);

}

/**
 *String sort(區(qū)分大小寫)
 */
private static void sortStringSentive() {
    List<String> originalList = Arrays.asList("Apache", "apache", "aapache", "bpache", "Bpache", "bapache");
    originalList.sort(Comparator.naturalOrder());
    System.out.println(originalList);

}
2.對(duì)數(shù)字進(jìn)行排序

/**
 *Integer sort()
 */
private static void sortInteger() {
    List<Integer> originalList = Arrays.asList(12, 3, 6, 7);
    originalList.sort(Comparator.naturalOrder());
    System.out.println(originalList);
}

3.按照對(duì)象中中的某個(gè)字段進(jìn)行排序

/**
 * bean 中的某個(gè)字段 (String)
 */
private static void sortBeanString() {
    List<Student> originalList = Arrays.asList(new Student("張三", 24, 23.01, false), new Student("李四", 23, 23.02, true),
            new Student("alice", 25, 25.02, false), new Student("Jack", 29, 24, true), new Student("Jack", 28, 24, false),
            new Student("mark", 30, 24, false));
    originalList.sort(Comparator.comparing(Student::getName).reversed());
    System.out.println(originalList);
}

/**
 * bean 中的某個(gè)字段 (Double)
 */
private static void sortBeanDouble() {
    List<Student> originalList = Arrays.asList(new Student("張三", 24, 23.01, false), new Student("李四", 23, 23.02, true),
            new Student("alice", 25, 25.02, false), new Student("Jack", 29, 24, true), new Student("Jack", 28, 24, false),
            new Student("mark", 30, 24, false));
    originalList.sort(Comparator.comparingDouble(Student::getSalary));
    System.out.println(originalList);
}

4.按照對(duì)象中中的多個(gè)字段進(jìn)行排序

private static void sortBeanMutil() {
    List<Student> originalList = Arrays.asList(new Student("張三", 24, 23.01, false), new Student("李四", 23, 23.02, true),
            new Student("alice", 25, 25.02, false), new Student("Jack", 29, 24, true), new Student("Jack", 28, 24, false),
            new Student("mark", 30, 24, false));
    originalList.sort(Comparator.comparingDouble(Student::getSalary).reversed().thenComparing(Comparator.comparingInt(Student::getAge)));
    System.out.println(originalList);
}

5.自定義比較器

private static void sortOther() {
    List<Student> originalList = Arrays.asList(new Student("張三", 24, 23.01, false), new Student("李四", 23, 23.02, true),
            new Student("alice", 25, 25.02, false), new Student("Jack", 29, 24, true), new Student("Jack", 28, 24, false),
            new Student("mark", 30, 24, false));
    // method 1
    originalList.sort(new Comparator<Student>() {
        @Override
        public int compare(Student o1, Student o2) {
            if (o1.leader == o2.leader) {
                return 0;
            }
            return o1.leader ? -1 : 1;
        }
    });
    System.out.println(originalList);
    System.out.println("************************************");
    // method 2
    originalList.sort((s1, s2) -> {

        return s1.isLeader() ? -1 : 1;
    });
    System.out.println("self 2 :" + originalList);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,791評(píng)論 0 3
  • 四、集合框架 1:String類:字符串(重點(diǎn)) (1)多個(gè)字符組成的一個(gè)序列,叫字符串。生活中很多數(shù)據(jù)的描述都采...
    佘大將軍閱讀 867評(píng)論 0 2
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,284評(píng)論 0 15
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,621評(píng)論 1 32
  • 新學(xué)期寄語(yǔ) 告別了愉快的暑假,我們又歡聚在了夢(mèng)想起航的地方——平川鎮(zhèn)中心小學(xué)。新的學(xué)年,同學(xué)們升入了新的年級(jí),進(jìn)入...
    用心走世界閱讀 617評(píng)論 0 2

友情鏈接更多精彩內(nèi)容