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

Java中l(wèi)ist集合stream流去重

這篇具有很好參考價值的文章主要介紹了Java中l(wèi)ist集合stream流去重。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Java中l(wèi)ist集合stream流去重

1. List單個字段去重

list.stream().distinct().collect(Collectors.toList());

2. List對象集合根據(jù)一個或者多個字段去重

準備類:

@Data
public class Book {
    private Long id;
    private String name;
    private Double price;
}

(1)根據(jù)單字段name去重

bookList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Book::getName))), ArrayList::new));

(2)根據(jù)多字段name price去重

bookList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(book -> book.getName() + "-" + book.getPrice()))), ArrayList::new));

(3)示例

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
import lombok.Data;
 
@Data
public class Book {
    private Long id;
    private String name;
    private Double price;
 
    public Book(Long id, String name, Double price) {
        this.id = id;
        this.name = name;
        this.price = price;
    }
 
    public static void main(String[] args) {
        List<Book> bookList = new ArrayList<>();
        bookList.add(new Book(1L, "書本1", 1.1));
        bookList.add(new Book(2L, "書本1", 1.1));
        bookList.add(new Book(3L, "書本2", 2.2));
        bookList.add(new Book(4L, "書本2", 4.4));
        // 根據(jù)單字段name去重
        List<Book> bookList1 = bookList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Book::getName))), ArrayList::new));
        System.out.println("單字段去重結果:" + bookList1.toString());
        // 根據(jù)多字段name price去重
        List<Book> bookList2 = bookList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(book -> book.getName() + "-" + book.getPrice()))), ArrayList::new));
        System.out.println("多字段去重結果:" + bookList2.toString());
    }
}

輸出打印結果文章來源地址http://www.zghlxwxcb.cn/news/detail-697856.html

單字段去重結果:[Book(id=1, name=書本1, price=1.1), Book(id=3, name=書本2, price=2.2)]
多字段去重結果:[Book(id=1, name=書本1, price=1.1), Book(id=3, name=書本2, price=2.2), Book(id=4, name=書本2, price=4.4)]

到了這里,關于Java中l(wèi)ist集合stream流去重的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • list根據(jù)對象中某個字段屬性去重Java流實現(xiàn)

    list根據(jù)對象中某個字段屬性去重Java流實現(xiàn)

    在Java的流(Stream)中,你可以使用distinct方法來實現(xiàn)根據(jù)對象中某個字段屬性去重的功能。要實現(xiàn)這個功能,你需要重寫對象的hashCode和equals方法,以確保相同字段屬性的對象被認為是相等的。以下是一個示例代碼: 在上面的代碼中,YourObject是你自定義的對象類型,你需要根據(jù)

    2024年02月10日
    瀏覽(101)
  • Java中使用流將兩個集合根據(jù)某個字段進行過濾去重?

    要是需要GPT Plus賬號的小伙伴可以聯(lián)系我~ 在Java中,您可以使用流(Stream)來過濾和去重兩個集合。下面是一個示例代碼,展示如何根據(jù)對象的某個字段進行過濾和去重操作: 在這個示例中,我們創(chuàng)建了一個 Person 類表示人員信息,包含 name 和 age 兩個字段。我們使用流的 filte

    2024年02月12日
    瀏覽(98)
  • Java通過Lambda表達式根據(jù)指定字段去除重復數(shù)據(jù)(集合去重)

    Java通過Lambda表達式根據(jù)指定字段去除重復數(shù)據(jù)(集合去重)

    這里博主給大家封裝好了一個工具類,里面有兩個方法。 方法一:可以根據(jù)指定字段去除重復數(shù)據(jù)。 方法二:可以獲取到重復的數(shù)據(jù)。 大家在使用過程中直接拷貝下方代碼在要去重的類中調用即可。 導入這個工具類后怎么使用呢?我們接著往下看。 List rstList = list.stream()

    2024年02月16日
    瀏覽(98)
  • Stream流實踐(二):list 對象數(shù)組根據(jù)某字段去重的三種基本思路

    相信大家對于list簡單數(shù)組的去重很熟悉了,例如以下代碼 那我們來探討下,對于list中保存為對象的數(shù)組,根據(jù)內部對象的 某一個字段 去重有什么好的思路呢? 給出一個簡單的Student對象 大家學廢了嗎?

    2024年02月16日
    瀏覽(370)
  • 使用java8 新特性stream流對List<Map<String, Object>>集合進行遍歷、過濾、查詢、去重、排序、分組

    對于一個ListMapString, Object類型的數(shù)據(jù),可以使用Java 8的新特性stream流來進行遍歷、過濾、查詢、去重、排序、分組等操作。 遍歷: 過濾: 查詢: 去重: 排序: 分組:

    2024年02月10日
    瀏覽(106)
  • Java List按照某字段去重

    Java List按照某字段去重

    Java8流的新類java.util.stream.Collectors實現(xiàn)了java.util.stream.Collector接口,同時又提供了大量的方法對流(stream)的元素執(zhí)行各種統(tǒng)計操作。 執(zhí)行結果如下 但是這種方式必須要 每個鍵值對都一樣,才會被判定成重復的 ,否則不會被判為重復,如下。 執(zhí)行結果如下 雖然name的值一樣,但

    2024年02月06日
    瀏覽(133)
  • 【Java】List集合去重的方式

    TreeSet可以將字符串類型的數(shù)據(jù)按照字典順序進行排序,首字母相同則看第二位 去重前的集合元素:22 去重前的集合元素:11 去重前的集合元素:33 去重前的集合元素:66 去重前的集合元素:22 去重后的集合:[11, 22, 33, 66] 由于Set的特性是無序且不可重復,我們利用這個特性進

    2024年02月04日
    瀏覽(33)
  • java8 List根據(jù)元素對象屬性去重

    1.使用Collectors.collectingAndThen鏈式去重 代碼: main: 結果: 或者可以利用map也可以: 或: 或者不用鏈式也可以分開: Collectors.collectingAndThen() ?函數(shù)應該最像? map and reduce ?了, 它可接受兩個參數(shù),第一個參數(shù)用于? reduce 操作,而第二參數(shù)用于? map 操作 。 也就是, 先把流中

    2024年02月12日
    瀏覽(101)
  • java List<對象> 根據(jù)對象的一個屬性進行去重

    1.實現(xiàn)一個自定義函數(shù),該函數(shù)將用于確定兩個對象是否相等,例如: 這個函數(shù)接受一個Function對象作為參數(shù),該函數(shù)將從對象中提取唯一標識屬性,并使用ConcurrentHashMap來確定是否已經處理過該屬性值。? ?2.現(xiàn)在你可以使用這個函數(shù)來進行去重了,例如: ?這個代碼將對m

    2024年02月12日
    瀏覽(19)
  • java8 列表通過 stream流 根據(jù)對象屬性去重的三種實現(xiàn)方法

    java8 列表通過 stream流 根據(jù)對象屬性去重的三種實現(xiàn)方法

    0、User對象 1、使用filter進行去重 測試 ①、疑惑 既然 filter 里面調用的是 distinctPredicate 方法,而該方法每次都 new 一個新的 map 對象,那么 map 就是新的,怎么能做到可以過濾呢 ②、解惑 先看一下 filter 的部分實現(xiàn)邏輯,他使用了函數(shù)式接口 Predicate ,每次調用filter時,會使用

    2024年01月20日
    瀏覽(432)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包