Java中使用stream只拿list的对象的某个字段组合成一个新的list
时间: 2023-08-07 13:03:27 浏览: 150
可以使用Java 8中的Stream API来实现。假设你有一个List<Person>,其中Person类有一个字段叫做name,你想要将所有Person对象的name字段组合成一个新的List<String>,代码如下:
```java
List<Person> personList = ... ; // 原始Person列表
List<String> nameList = personList.stream().map(Person::getName).collect(Collectors.toList());
```
上述代码中,我们使用map操作将Person对象转换成其name字段的值,然后使用collect操作将所有name值收集到一个新的List中。
注意,这里假设Person类有一个public的getName()方法来获取name字段的值。如果Person类的name字段是public的,你也可以直接使用lambda表达式来获取字段值,例如:
```java
List<String> nameList = personList.stream().map(person -> person.name).collect(Collectors.toList());
```
相关问题
java stream获取List对象的某个字段的全部数据
假设你有一个List对象,里面包含了多个对象,每个对象都有一个字段叫做"fieldName",你想要获取所有对象的"fieldName"字段的值,可以使用Java 8中的Stream API来实现。具体代码如下:
```
List<YourObject> yourList = ... // 假设你的List对象叫做yourList
List<String> fieldValues = yourList.stream()
.map(YourObject::getFieldName)
.collect(Collectors.toList());
```
上面的代码中,我们首先调用了`stream()`方法将List对象转换成Stream对象,然后使用`map()`方法将每个对象的"fieldName"字段映射成一个新的Stream,最后使用`collect()`方法将这些新的Stream收集成一个List对象,其中每个元素都是"fieldName"字段的值。
java stream 将对象集合中的某个字段抽成list
假设我们有一个对象集合 `List<Person>`,其中每个 `Person` 对象都有一个 `name` 字段,我们想要将所有人的名字抽取出来成为一个 `List<String>`。可以使用 Java 8 的 Stream API 来实现:
```java
List<Person> personList = ...;
List<String> nameList = personList.stream()
.map(Person::getName)
.collect(Collectors.toList());
```
上面的代码中,首先通过 `stream()` 方法将 `personList` 转换成一个流,然后使用 `map()` 方法将每个 `Person` 对象映射成其 `name` 字段,最后使用 `collect()` 方法将所有的名字收集成一个 `List<String>`。其中 `Person::getName` 是一个方法引用,表示获取 `Person` 对象的 `name` 字段。
阅读全文