Voiss 2019-09-29 15:25 采纳率: 0%
浏览 17429
已结题

如何使用Java8Lambda表达式对两个List<Object>中的多个元素进行对比筛选

        List<Student> list = new ArrayList<>();
        List<Student> list2 = new ArrayList<>();

        Student student1 = new Student();
        student1.setAge("一");
        student1.setSex(1);

        Student student2 = new Student();
        student2.setAge("一");
        student2.setSex(2);

        Student student3 = new Student();
        student3.setAge("三");
        student3.setSex(3);

        Student student4 = new Student();
        student4.setAge("四");
        student4.setSex(4);

        // List2
        Student student5 = new Student();
        student5.setAge("一");
        student5.setSex(1);

        Student student6 = new Student();
        student6.setAge("二");
        student6.setSex(9);

        Student student7 = new Student();
        student7.setAge("三");
        student7.setSex(9);

        Student student8 = new Student();
        student8.setAge("四");
        student8.setSex(9);

现在想要的结果是筛选出两个List中age,sex都一样的元素组成一个新List


        Set<Student> s = list.stream()
                .map(
                        user -> list2.stream()
                        .filter(log -> user.getAge().equals(log.getAge()))
                        .filter(log -> user.getSex() == log.getSex())

                        .findAny()
                        .orElse(user)

                        )
                .collect(Collectors.toSet());
```                         我自己试了下好像并没有卵用
  • 写回答

1条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥20 51单片机实训实验报告
      • ¥15 C# 循环读写数据中途突然变慢
      • ¥15 用Java实现双端队列
      • ¥150 ID3决策树实现分类
      • ¥15 multisim10安装后,找不到NI License Manager的程序来安装许可证
      • ¥15 C++银行卡系统 Help!
      • ¥15 R语言数据分析的相关问题
      • ¥15 模型导入SP后贴图纹理只有一个,拆了四张UV的,怎么解决?
      • ¥15 检索带order by 非常慢
      • ¥20 python 爬虫 token 加密方式