首页 > 其他分享 >获取一个集合出现重复的数据

获取一个集合出现重复的数据

时间:2023-03-08 11:04:22浏览次数:36  
标签:stream Stream collect 重复 元素 list 获取 集合 entry

1.对象集合:
       //单独String集合
        List<Student> list = new ArrayList<>();
        list.add(Student.builder().id("1").name("1").build());
        list.add(Student.builder().id("2").name("3").build());
        list.add(Student.builder().id("1").name("1").build());
        list.add(Student.builder().id("12").name("1").build());

        List<Student> collect = list.stream().filter(i -> ObjectUtil.isNotEmpty(i))               // list 对应的 Stream 并过滤""
                .collect(Collectors.toMap(e -> e, e -> 1, Integer::sum)) // 获得元素出现频率的 Map,键为元素,值为元素出现的次数
                .entrySet()
                .stream()                       // 所有 entry 对应的 Stream
                .filter(e -> e.getValue() > 1)         // 过滤出元素出现次数大于 1 (重复元素)的 entry
                .map(Map.Entry::getKey)                // 获得 entry 的键(重复元素)对应的 Stream
                .collect(Collectors.toList());
        System.out.println(collect);

 



2.String集合:
//单独String集合
List<String> list = Arrays.asList("a","b","a","c","d","b");
List<String> collect = list.stream().filter(i -> i != "")               // list 对应的 Stream 并过滤""
        .collect(Collectors.toMap(e -> e, e -> 1, Integer::sum)) // 获得元素出现频率的 Map,键为元素,值为元素出现的次数
        .entrySet()
        .stream()                       // 所有 entry 对应的 Stream
        .filter(e -> e.getValue() > 1)         // 过滤出元素出现次数大于 1 (重复元素)的 entry
        .map(Map.Entry::getKey)                // 获得 entry 的键(重复元素)对应的 Stream
        .collect(Collectors.toList());
System.out.println(collect);

 



标签:stream,Stream,collect,重复,元素,list,获取,集合,entry
From: https://www.cnblogs.com/lboke/p/17191212.html

相关文章

  • 【哈希表】LeetCode 剑指 Offer 03. 数组中重复的数字
    题目链接剑指Offer03.数组中重复的数字思路使用哈希表记录每个数字的出现次数。代码classSolution{publicintfindRepeatNumber(int[]nums){in......
  • java中根据公网IP获取地址
    packagecom.dashan.utils.iputils;importcom.fasterxml.jackson.databind.ObjectMapper;importokhttp3.OkHttpClient;importokhttp3.Request;importokhttp3.Res......
  • java中获取内网IP
    packagecom.dashan.utils.iputils;importorg.apache.commons.lang.StringUtils;importjavax.servlet.http.HttpServletRequest;importjava.net.InetAddress;impo......
  • 26. 删除有序数组中的重复项
    https://leetcode.cn/problems/remove-duplicates-from-sorted-array/ 26.删除有序数组中的重复项难度简单3051收藏分享切换为英文接收动态反馈给你一个 升序......
  • 从 JS 日期对象获取 YYYYMMDD 格式的字符串?
    我正在尝试使用JS将a转换dateobject为格式的字符串YYYYMMDD。有没有比连接Date.getYear(),Date.getMonth()和更简单的方法Date.getDay()?解答http://www.st......
  • mysql 去除重复字符串的函数
    CREATEDEFINER=`root`@`localhost`FUNCTION`deleteManyChar`(in_strvarchar(2000))RETURNSvarchar(2000)CHARSETutf8COLLATEutf8_unicode_ciBEGINDECLAREv_r......
  • 化妆品&护肤品多次重复封闭性皮肤斑贴
    随着美容护肤品市场的不断发展,新的化妆品和美容护肤手段层出不穷,化妆品不良反应及化妆品皮肤病的发生几率也逐年增加。为此,国家成立了专门的监督管理机构和检测机构对化妆品......
  • [转]C# 获得窗体句柄并发送消息(利用windows API可在不同进程中获取)
     C#使用WindowsAPI获取窗口句柄控制其他程序窗口编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口。比如,操作飞信定时发送短信等......
  • 4.无重复字符的最长子串
    3.无重复字符的最长子串classSolution{public:intlengthOfLongestSubstring(strings){unordered_map<char,int>map;intans=0;......
  • requests获取所有状态码
    requests获取所有状态码requests获取所有状态码requests默认是不会获取301/302的状态码的。可以设置allow_redirects=False,这样就可以获取所有的状态码了 1......