java 使用stream 将list中对象的多个属性提取生成新的list对象
时间: 2023-08-07 18:03:46 浏览: 400
java8从list集合中取出某一属性的值的集合案例
5星 · 资源好评率100%
可以使用Java 8中的Stream API和lambda表达式来实现。
假设有一个包含Person对象的List,每个Person对象都有name和age两个属性,现在要将这些属性提取出来,生成一个新的List,包含一个String类型的name和一个Integer类型的age,可以按照如下方式实现:
```java
List<Person> personList = new ArrayList<>();
// 假设personList中已经有了Person对象
List<AbstractMap.SimpleEntry<String, Integer>> nameAgeList = personList.stream()
.map(person -> new AbstractMap.SimpleEntry<>(person.getName(), person.getAge()))
.collect(Collectors.toList());
```
在上面的代码中,使用map方法将每个Person对象转换为一个包含name和age的SimpleEntry对象,然后使用collect方法将所有SimpleEntry对象收集到一个List中。可以看到,使用Stream API和lambda表达式可以非常方便地将一个List中的对象的多个属性提取出来生成新的对象。
阅读全文