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

JAVA8 獲取list集合中重復(fù)的元素和獲取去重?cái)?shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了JAVA8 獲取list集合中重復(fù)的元素和獲取去重?cái)?shù)據(jù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.java8獲取list集合中重復(fù)的元素
      //單獨(dú)String集合
        List<String> list = Arrays.asList("a","b","a","c","d","b");
        List<String> collect = list.stream().filter(i -> i != "")               // list 對應(yīng)的 Stream 并過濾""
                .collect(Collectors.toMap(e -> e, e -> 1, Integer::sum)) // 獲得元素出現(xiàn)頻率的 Map,鍵為元素,值為元素出現(xiàn)的次數(shù)
                .entrySet()
                .stream()                       // 所有 entry 對應(yīng)的 Stream
                .filter(e -> e.getValue() > 1)         // 過濾出元素出現(xiàn)次數(shù)大于 1 (重復(fù)元素)的 entry
                .map(Map.Entry::getKey)                // 獲得 entry 的鍵(重復(fù)元素)對應(yīng)的 Stream
                .collect(Collectors.toList());
        System.out.println(collect);
2.java8根據(jù)List對象屬性獲取重復(fù)數(shù)據(jù)和獲取去重后數(shù)據(jù)
2.1獲取重復(fù)數(shù)據(jù)
List<Person> personList = new ArrayList<Person>();
        personList.add(new Person("張三", 8, 3000));
        personList.add(new Person("李四", 18, 5000));
        personList.add(new Person("王五", 28, 7000));
        personList.add(new Person("孫六", 38, 9000));
        personList.add(new Person("孫六", 38, 9000));
        personList.add(new Person("孫六", 38, 10000));
        
       //1.先根據(jù)得到一個(gè)屬于集合 姓名
        List<String> uniqueList = personList.stream().collect(Collectors.groupingBy(Person::getName, Collectors.counting()))
                .entrySet().stream().filter(e -> e.getValue() > 1)
                .map(Map.Entry::getKey).collect(Collectors.toList());
        uniqueList.forEach(p -> System.out.println(p));

        //計(jì)算兩個(gè)list中的重復(fù)值  3條數(shù)據(jù)
        List<Person> reduce1 = personList.stream().filter(item -> uniqueList.contains(item.getName())).collect(Collectors.toList());
        System.out.println(reduce1.toString());
   
        //2.根據(jù)多個(gè)屬性獲取重復(fù)數(shù)據(jù),只能重復(fù)操作得到重復(fù)的數(shù)據(jù) 工資
        List<Integer> collect1 = reduce1.stream().collect(Collectors.groupingBy(Person::getWages, Collectors.counting()))
                .entrySet().stream().filter(e -> e.getValue() > 1)
                .map(Map.Entry::getKey).collect(Collectors.toList());

        //計(jì)算兩個(gè)list中的差集
        List<Person> collect2 = reduce1.stream().filter(item -> collect1.contains(item.getWages())).collect(Collectors.toList());
        System.out.println(collect2.toString());

結(jié)果: 根據(jù)多個(gè)屬性獲取重復(fù)數(shù)據(jù),還在摸索中,歡迎大家來指點(diǎn)?。。。?!

list獲取重復(fù)數(shù)據(jù),lambda,list,java

2.2獲取去重后數(shù)據(jù)
List<Person> personList = new ArrayList<Person>();
        personList.add(new Person("張三", 8, 3000));
        personList.add(new Person("李四", 18, 5000));
        personList.add(new Person("王五", 28, 7000));
        personList.add(new Person("孫六", 38, 9000));
        personList.add(new Person("孫六", 38, 9000));
        personList.add(new Person("孫六", 38, 10000));
       
 //去重      
 List<Person> unique = personList.stream().collect(Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new));
        System.out.println("unique:"+unique.toString());

結(jié)果:
list獲取重復(fù)數(shù)據(jù),lambda,list,java文章來源地址http://www.zghlxwxcb.cn/news/detail-528891.html

到了這里,關(guān)于JAVA8 獲取list集合中重復(fù)的元素和獲取去重?cái)?shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(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合并兩個(gè)list 并去重,指定保留其中一個(gè)list的重復(fù)數(shù)據(jù)

    在Java中,有多種方法可以合并兩個(gè)List并去重,指定保留其中一個(gè)List的重復(fù)數(shù)據(jù)。下面介紹幾種常見的方法,并附上代碼示例。 該方法首先將一個(gè)List的所有元素加入到目標(biāo)List中,然后遍歷另一個(gè)List,如果目標(biāo)List中不包含該元素,則將該元素加入到目標(biāo)List中。最后得到的就

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

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

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

    2024年02月16日
    瀏覽(98)
  • Java8對List集合中的數(shù)據(jù)進(jìn)行過濾處理

    目錄 0.需求場景 1.編碼實(shí)現(xiàn) ????????假設(shè)有這樣一個(gè)需求,將List中所有超過 35 歲的員工剔除,該如何實(shí)現(xiàn)呢?我們可以利用 Java8 的流式編程,輕松的實(shí)現(xiàn)這個(gè)需求。 ? ? ? ? 當(dāng)然也不局限與上述場景,對應(yīng)的處理方法適用與根據(jù) List 中元素或元素的屬性,對 List 進(jìn)行處

    2024年02月15日
    瀏覽(94)
  • Java8 list多屬性去重

    Java8 list多屬性去重

    大家好,我是三叔,很高興這期又和大家見面了,一個(gè)奮斗在互聯(lián)網(wǎng)的打工人。 在 Java 開發(fā)中,我們經(jīng)常會(huì)面臨對 List 中的對象屬性去重的需求。然而,當(dāng)需要根據(jù)多個(gè)屬性來進(jìn)行去重時(shí),情況會(huì)稍微復(fù)雜一些。本篇博客將深入探討如何使用 Java 8 的 Stream API 來實(shí)現(xiàn) List 多屬

    2024年02月14日
    瀏覽(440)
  • java8集合操作(排序、取交集、并集、差集、去重并集)分組

    java8集合操作(排序、取交集、并集、差集、去重并集)分組

    一、List集合轉(zhuǎn)換成Set集合 Set@NotNull Long ids =entityList.stream().filter(e - e != null).map(UserCopyPointEntity::getPointId).collect(Collectors.toSet()); 二、集合map的循環(huán) map.forEach((k, v) - { System.out.println(k + \\\"----\\\" + v); }); 三、集合排序,名稱排序,順序排序 if (result.size() 0) { // 樓層排序, 從小到大排序

    2024年02月16日
    瀏覽(89)
  • list對象中如何根據(jù)對象中某個(gè)屬性去重使用Java8流實(shí)現(xiàn)

    list對象中如何根據(jù)對象中某個(gè)屬性去重使用Java8流實(shí)現(xiàn)

    在 Java 8 的流操作中,可以使用 distinct 方法來對一個(gè)對象流進(jìn)行去重,但是默認(rèn)情況下它會(huì)使用對象的 equals() 方法來判斷重復(fù)。如果你希望根據(jù)對象的某個(gè)屬性進(jìn)行去重,則可以使用 distinct 方法結(jié)合 map 方法來實(shí)現(xiàn)。 下面是一個(gè)示例代碼,假設(shè)你有一個(gè) List 對象 list,其中包

    2024年02月11日
    瀏覽(131)
  • Java8 - 將 List 集合轉(zhuǎn)為 Map

    1. 將List轉(zhuǎn)為Map:key=userId, value=name 輸出: 2. 將List轉(zhuǎn)為Map:key=userId, value=User對象 輸出: 3. 重復(fù)的 key 處理 如果出現(xiàn)相同的key,那么會(huì)拋出重復(fù)key的異常,比如我們將userId為3的修改為2,則會(huì)和第二個(gè)用戶沖突: 拋出異常: Collectors.toMap支持第三個(gè)參數(shù),對重復(fù)值進(jìn)行選?。?/p>

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

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

    2024年02月04日
    瀏覽(33)
  • Java中l(wèi)ist集合stream流去重

    準(zhǔn)備類: (1)根據(jù)單字段name去重 (2)根據(jù)多字段name price去重 (3)示例 輸出打印結(jié)果

    2024年02月09日
    瀏覽(81)
  • java list 快速去重 有序 重復(fù) LinkedHashSet HashSet

    ?如果list中裝的是簡單元素,int 類型,string類型,想要去重,并且保持在list中的順序,最快的方式如下: 使用 LinkedHashSet,去重加有序。 使用 HashSet,只去重,但順序任意。 參考 Java中List集合對象去重及按屬性去重的8種方法_java list對象去重_//承續(xù)緣_紀(jì)錄片的博客-CSDN博客

    2024年02月13日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包