java stream 对象list转string list
时间: 2023-09-07 09:15:13 浏览: 113
您可以使用Java Stream来将对象列表转换为字符串列表。下面是一个示例代码:
```java
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Person> personList = List.of(
new Person("Alice"),
new Person("Bob"),
new Person("Charlie")
);
List<String> nameList = personList.stream()
.map(Person::getName)
.collect(Collectors.toList());
System.out.println(nameList);
}
static class Person {
private String n
相关问题
java stream 把对象list转换为 Map<String, List<String>> 的结果
Java Stream API 可以非常方便地将List转换成Map,假设我们有一个Person对象列表,每个Person对象有两个属性:name和hobbies,我们可以这样操作:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
class Person {
String name;
List<String> hobbies;
// 构造函数、getter和setter省略...
}
List<Person> persons = Arrays.asList(
new Person("Alice", Arrays.asList("Reading", "Drawing")),
new Person("Bob", Arrays.asList("Gaming", "Sports"))
);
Map<String, List<String>> map = persons.stream()
.collect(Collectors.groupingBy(Person::getName, Collectors.mapping(Person::getHobbies, Collectors.toList())));
// 结果:
// {Alice=[Reading, Drawing], Bob=[Gaming, Sports]}
```
这里,`Collectors.groupingBy()`方法根据`Person::getName`方法的结果作为键(key),而`Collectors.mapping()`则用于获取每个Person对象的`hobbies`字段并收集到一个新的List中,最后返回的是一个Map。
java stream 把对象list转换为 Map<String, String> 的结果
在 Java 中,你可以使用 Stream API 将 List 对象转换成 Map<String, String>。Stream 提供了一种流式处理数据的方式,允许你在单一线程中对集合进行操作,而不需要显式的遍历。以下是一个简单的示例,假设我们有一个包含 Person 对象(每个 Person 有两个属性:name 和 age)的 List,并想把它们转换为键值对形式的 Map:
```java
import java.util.*;
import java.util.stream.Collectors;
class Person {
private String name;
private String age;
// getters and setters...
public String getNameAndAge() {
return this.name + " : " + this.age;
}
}
List<Person> personList = ...; // 假设已填充了Person对象
Map<String, String> map = personList.stream()
.map(Person::getNameAndAge) // 获取每个Person的name和age组合
.collect(Collectors.toMap(Function.identity(), Function.identity())); // 使用identity函数作为键值映射
// 这里假设姓名不会重复,如果可能存在重复,可以改用 Collectors.toMap 函数的其他版本来处理冲突
```
这个例子中,`map()` 方法用于将每个 `Person` 对象转换为其 `getNameAndAge()` 方法返回的字符串,`collect(toMap())` 则用于收集并构建最终的 `Map`。
阅读全文