取出List对象某个List属性的所有值
时间: 2023-12-30 20:04:15 浏览: 69
您可以使用 Java 8 中的 Stream API 来取出 List 对象中某个 List 属性的所有值。具体来说,可以使用 flatMap 方法将 List 中的每个元素的 List 属性扁平化为一个 Stream,然后使用 collect 方法将 Stream 中的所有值收集到一个新的 List 中。
以下是一个示例代码:
假设有一个包含多个对象的 List,每个对象都有一个属性 tags,它是一个包含多个字符串的 List,需要取出所有对象的 tags 属性中的所有字符串。
```java
class Product {
private List<String> tags;
public Product(List<String> tags) {
this.tags = tags;
}
public List<String> getTags() {
return tags;
}
}
List<Product> list = Arrays.asList(new Product(Arrays.asList("apple", "orange", "banana")),
new Product(Arrays.asList("cherry", "strawberry")),
new Product(Arrays.asList("watermelon", "pineapple")));
List<String> result = list.stream()
.flatMap(p -> p.getTags().stream())
.collect(Collectors.toList());
System.out.println("List 中所有对象的 tags 属性中的所有字符串为:" + result);
```
输出结果为:
```
List 中所有对象的 tags 属性中的所有字符串为:[apple, orange, banana, cherry, strawberry, watermelon, pineapple]
```
在上述代码中,使用 stream 方法将 List 转换为 Stream,然后使用 flatMap 方法将每个对象的 tags 属性扁平化为一个字符串 Stream,最后使用 collect 方法将扁平化后的 Stream 中的所有字符串收集到一个新的 List 中。
阅读全文