gpt4 book ai didi

java - bean1有一个列表。根据bean2的属性字段值过滤出列表

转载 作者:行者123 更新时间:2023-11-30 05:30:17 24 4
gpt4 key购买 nike

class Bean1{
private int a;
private List<Bean2> b;

// getter and setter methods..
}

class Bean2 {
private int id;

// getter and setter methods..
}

假设我有一个List<Bean1> ,比如说bean1list 。我想要一个新的List<Bean1>这样bean2的id不等于0。

我想在 java 8 中执行此操作。

我尝试过以下方法

bean1list.stream()
.flatMap(x -> x.getB().stream())
.filter(y -> y.getId() != 0)
.collect(Collectors.toList());

但这返回的是 Bean2 类型的列表。我需要的是 Bean1 类型本身的列表。

有人可以帮忙吗?

最佳答案

i want to get a new list such that list should contain only id!=0

根据您的评论,如果您想修改 List<Bean2>在您的每个 Bean1 bean1List 中的对象这样Bean2 id 为 0 的 s 被删除,仅 Bean2为每个 Bean1 保留具有非零 id 的 s那么解决方案可能如下:

 bean1List.forEach(bean1 -> bean1.getList().removeIf(bean2 -> bean2.getId() ==0));

这里为每个Bean1使用Collection#forEach List<Bean2>仅过滤掉 Bean2 的内容具有非零 id 的 s。

这里的区别是输出将包含所有 Bean1Bean1 s 将有他们的List<Bean2>使用 Collection#removeIf 进行过滤。

关于java - bean1有一个列表<bean2>。根据bean2的属性字段值过滤出列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57698375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com