Java 8 lambda 从列表中获取和删除元素

新手上路,请多包涵

给定一个元素列表,我想获取具有给定属性的元素 并将 其从列表中删除。我找到的最佳解决方案是:

 ProducerDTO p = producersProcedureActive
                .stream()
                .filter(producer -> producer.getPod().equals(pod))
                .findFirst()
                .get();
producersProcedureActive.remove(p);

是否可以在 lambda 表达式中结合 get 和 remove ?

原文由 Marco Stramezzi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 765
1 个回答

从列表中删除元素

objectA.removeIf(x -> conditions);

例如:

 objectA.removeIf(x -> blockedWorkerIds.contains(x));

List<String> str1 = new ArrayList<String>();
str1.add("A");
str1.add("B");
str1.add("C");
str1.add("D");

List<String> str2 = new ArrayList<String>();
str2.add("D");
str2.add("E");

str1.removeIf(x -> str2.contains(x));

str1.forEach(System.out::println);

输出: A B C

原文由 uma shankar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题