国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JDK8的lambda方式List多字段排序List.stream().sorted()

這篇具有很好參考價(jià)值的文章主要介紹了JDK8的lambda方式List多字段排序List.stream().sorted()。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

JDK8的lambda方式List多字段排序List.stream().sorted()

多字段排序
List<HumanDetailDownloadVO> collect = dataList.stream().sorted(
        // 日期 倒序  
        Comparator.comparing(HumanDetailDownloadVO::getDate_str, Comparator.reverseOrder())
                // 倉id 倒序 
                .thenComparing(HumanDetailDownloadVO::getSite_code, Comparator.reverseOrder())
                // 用戶名升序  自定義比較器  拼音排序
                .thenComparing(HumanDetailDownloadVO::getUser_name, new ChineseComparator())
                // 大類code 升序
                .thenComparing(HumanDetailDownloadVO::getPosition_code, Comparator.naturalOrder())
                // 小類code 升序
                .thenComparing(HumanDetailDownloadVO::getTask_code, Comparator.naturalOrder()))
        .collect(Collectors.toList());

拼音排序:

引入jar包:

<!--        漢字拼音排序-->
        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.1</version>
        </dependency>

自定義比較器:

package XXXXXXXXXXXXXXXX;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class ChineseComparator implements Comparator<String> {

    HanyuPinyinOutputFormat pinyinOutputFormat = new HanyuPinyinOutputFormat();

    @Override
    public int compare(String o1, String o2) {

        String pinyin1 = null;
        String pinyin2 = null;
        try {
            pinyin1 = PinyinHelper.toHanYuPinyinString(o1, pinyinOutputFormat, " ", true);
            pinyin2 = PinyinHelper.toHanYuPinyinString(o2, pinyinOutputFormat, " ", true);
            System.out.println("pinyin1=" + pinyin1 + ", pinyin2=" + pinyin2);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return pinyin1.compareTo(pinyin2);
    }

}

結(jié)束。文章來源地址http://www.zghlxwxcb.cn/news/detail-694996.html

到了這里,關(guān)于JDK8的lambda方式List多字段排序List.stream().sorted()的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java通用實(shí)現(xiàn)List<自定義對象>中指定字段和指定排序方式

    java通用實(shí)現(xiàn)List<自定義對象>中指定字段和指定排序方式

    Person類: 工具類: 結(jié)果:

    2024年02月04日
    瀏覽(26)
  • Java—JDK8新特性—Lambda表達(dá)式【內(nèi)含思維導(dǎo)圖】

    Java—JDK8新特性—Lambda表達(dá)式【內(nèi)含思維導(dǎo)圖】

    目錄 JDK8新特性 2.Lambda表達(dá)式 思維導(dǎo)圖 2.1?什么是Lambda表達(dá)式 2.2 為什么使用Lamdba表達(dá)式 2.3 Lambda表達(dá)式基本語法 2.4 類型推斷 2.5 Lambda練習(xí) 2.6 Lambda常用場景 ????????官網(wǎng)提供網(wǎng)址:JDK 8 Features ????????Lamdba是一個(gè) 匿名函數(shù) ,可以把Lamdba表達(dá)式理解為是一段可以傳遞的

    2024年02月03日
    瀏覽(27)
  • 使用Java的stream().sorted方法對集合進(jìn)行排序

    Java Stream API 提供了豐富的方法來對流中的元素進(jìn)行處理和操作。其中, sorted() 方法用于對流中的元素進(jìn)行排序。本文將深入探討 sorted() 方法的用法、示例代碼以及詳細(xì)解釋,以幫助您更好地理解和使用這個(gè)方法。 StreamT sorted() : 這個(gè)方法用于對流中的元素進(jìn)行自然排序。要

    2024年02月04日
    瀏覽(20)
  • Java 字段 Stream 排序

    這篇博客簡單記錄下 Java 字段 Stream 排序常用方式,歡迎閱讀斧正。 用到的類如下: 準(zhǔn)備數(shù)據(jù): 升序使用 .sorted(Comparator.Comparing(YourClass::Class\\\'s Field) 就行,降序使用 .sorted(Comparator.Comparing(YourClass::Class\\\'s Field, Comparator.reverseOrder()) 。 輸出: 利用的是 thenComparing() :升序 thenCom

    2024年02月15日
    瀏覽(30)
  • List 去重兩種方式:stream(需要JDK1.8及以上)、HashSet

    List 去重兩種方式:stream(需要JDK1.8及以上)、HashSet

    1、使用Stream 方法 使用JDK1.8及以上 ? ? ?? 運(yùn)行結(jié)果如下: ?

    2024年02月11日
    瀏覽(26)
  • JAVA中對list使用stream對某個(gè)字段求和

    對于List對象 或者ListMapString,integer等類型的數(shù)組,如何快速的求出list數(shù)組中某個(gè)對象的某個(gè)屬性的和,平均數(shù),統(tǒng)計(jì)數(shù),最大值,最小值,等: 使用 XXXSummaryStatistics統(tǒng)計(jì)類實(shí)現(xiàn): 運(yùn)行結(jié)果如下: 相應(yīng)的還有DoubleSummaryStatistics, LongSummaryStatistics

    2024年02月14日
    瀏覽(95)
  • java stream distinct根據(jù)list某個(gè)字段去重

    java stream distinct根據(jù)list某個(gè)字段去重,普通List簡單去重: 很顯然這種滿足不了需求,我們List里的是實(shí)體對象,這里的是字符串。 首先創(chuàng)建了一個(gè)Student類,該類包含id、name、age三個(gè)字段,使用了注解@Data,我們想根據(jù)學(xué)生的name去重。 一、Stream流 + TreeSet(推薦) 根據(jù)學(xué)生的

    2024年01月17日
    瀏覽(304)
  • Java Stream流對多個(gè)字段進(jìn)行排序

    Java Stream流對多個(gè)字段進(jìn)行排序

    談起Java 8,不少熟悉它的人,都會知道有一個(gè)對我們幫助很大的新特性,沒錯(cuò),就是我們在項(xiàng)目中經(jīng)常用到的stream,它對我們處理數(shù)據(jù)的過程中提供了很多的便利,而這邊文章主要講述stream的便利之一:對多個(gè)字段進(jìn)行排序 首先我們在數(shù)據(jù)庫中插入幾條樣例數(shù)據(jù) 要求:按照

    2024年02月10日
    瀏覽(22)
  • JAVA的sort用法詳解(二維數(shù)組排序,List<>排序,lambada表達(dá)式,自定義類型排序)

    JAVA的sort用法詳解(二維數(shù)組排序,List<>排序,lambada表達(dá)式,自定義類型排序)

    目錄 前言: 一維數(shù)組降序: 方法1.Comparator接口: 代碼實(shí)現(xiàn): 方法2.Collections.reverseOrder(): 代碼實(shí)現(xiàn):? 二維數(shù)組排序: 代碼如下: List排序: 代碼如下: 自定義類型比較排序: 按照年齡逆序排序: 按照姓名升序排序: lambada表達(dá)式簡寫: 一維數(shù)組逆序代碼: 二維數(shù)組排

    2024年04月09日
    瀏覽(104)
  • Java8 stream、List forEach 遍歷對象 List 對某一字段重新賦值

    Java8 stream、List forEach 遍歷對象 List 對某一字段重新賦值 經(jīng)常會需要遍歷對象 List 對某一字段重新賦值,使用 Java8 stream 或者 List forEach 操作實(shí)現(xiàn)非常便捷。 一、Java8 stream 操作 示例代碼如下: 二、List forEach 操作 示例代碼如下: 將 Object 替換為需要提取的對象即可。 遍歷對象

    2024年02月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包