如何用list.stream收集list元素中的某个属性形成新的list
时间: 2023-08-06 11:09:00 浏览: 70
可以使用Java 8中的Stream API和Collectors工具类来完成这个任务。假设我们有一个元素类型为T的List<T>,其中T包含属性prop,我们要从这个list中选取所有元素的prop属性,并将它们组成一个新的List。下面是一种实现方式:
```java
List<T> list = ... // 原始list
List<PropType> props = list.stream()
.map(T::getProp)
.collect(Collectors.toList());
```
这里使用了map操作,将每个元素的prop属性映射为一个新的对象,然后使用toList()方法将这些新对象组成一个新的List。其中T::getProp是一个方法引用,表示获取T对象的prop属性。你需要将PropType替换成prop属性的类型。
相关问题
list.stream去掉某个元素
你可以使用 `filter` 方法来移除列表中的特定元素。以下是使用 `filter` 方法移除某个元素的示例代码:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int elementToRemove = 3;
List<Integer> result = numbers.stream()
.filter(number -> number != elementToRemove)
.collect(Collectors.toList());
System.out.println(result); // [1, 2, 4, 5]
```
在这个例子中,我们创建了一个整数列表 `numbers`,然后使用 `stream()` 方法将其转换为流。接着使用 `filter` 方法,传入一个 lambda 表达式作为参数,该表达式用于判断元素是否与要移除的元素相等。最后,我们使用 `collect` 方法将过滤后的元素收集到一个新的列表中,并打印输出结果。
这样就可以通过 `filter` 方法从 `list.stream()` 中移除特定的元素。
stream查询某个属性在另个list中的元素
您可以使用Java 8的Stream API来查询某个属性在另一个list中的元素。假设您有一个Person类,其中包含属性name和age,同时您有一个List<Person>列表和一个List<String>字符串列表。如果您想查询名字在字符串列表中的人,请使用以下代码:
```
List<Person> people = ... // your list of people
List<String> names = ... // your list of names
List<Person> filteredPeople = people.stream()
.filter(p -> names.contains(p.getName()))
.collect(Collectors.toList());
```
这将返回一个新的Person列表,其中包含名字在names列表中的人。您可以根据需要使用其他操作来进一步处理此列表。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)