java List《DO》中获取name1 和 name2 集合 lamda
时间: 2024-11-29 21:38:06 浏览: 1
在Java中,如果你有一个`List<DO>`类型的列表,其中`DO`是包含`name1`和`name2`属性的对象,你可以使用Lambda表达式和流API来过滤并创建一个新的只包含特定名字的集合。例如,假设`DO`类有这样的结构:
```java
public class DO {
String name1;
String name2;
// 其他属性...
}
```
你可以这样做:
```java
List<DO> list = ...; // 假设这是你的原始列表
List<String> names = list.stream()
.filter(d -> d.getName1().equals("value1") || d.getName2().equals("value2")) // 过滤条件
.map(d -> Stream.of(d.getName1(), d.getName2())) // 提取name1和name2
.flatMap(Stream::of)
.collect(Collectors.toList()); // 合并成新的列表
```
这里我们首先筛选出`name1`或`name2`匹配的元素,然后使用`map`转换每个对象到包含两个名字的流,接着`flatMap`将这两个名字合并成单个流,最后使用`collect`收集所有符合条件的名字。
阅读全文