从flatMap创建HashMap的过程如下:
person -> Stream.of(new AbstractMap.SimpleEntry<>(person.getId(), person.getName()))
来将Person对象转换为键值对流。Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)
将键值对流中的键作为HashMap的键,将值作为HashMap的值。下面是一个示例代码,演示了如何从flatMap创建HashMap:
import java.util.AbstractMap;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class FlatMapToHashMapExample {
public static void main(String[] args) {
// 假设我们有一个包含Person对象的流
Stream<Person> personStream = Stream.of(
new Person(1, "Alice"),
new Person(2, "Bob"),
new Person(3, "Charlie")
);
// 使用flatMap将Person对象转换为键值对流,并将其收集到HashMap中
Map<Integer, String> hashMap = personStream.flatMap(person -> Stream.of(new AbstractMap.SimpleEntry<>(person.getId(), person.getName())))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
// 打印HashMap
System.out.println(hashMap);
}
}
class Person {
private int id;
private String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
}
该示例创建了一个包含三个Person对象的流,然后使用flatMap操作将Person对象转换为键值对流,最后将键值对流收集到一个HashMap中。最后,打印HashMap的内容。
这是一个简单的例子,但你可以根据你的需求扩展和定制flatMap操作来创建不同类型的HashMap。
领取专属 10元无门槛券
手把手带您无忧上云