[英]converting List<A> to Map<String,List<A>> using java 8 stream API
[英]Converting List of List and String to Map with Java Stream
我有一个这样的课:
public class A {
private List<String> stringList;
private String someString;
}
我有这样的对象列表,如下所示:
List<A> list = //some method to generate list
我想将它转换为Map<String, String>
,其中stringList
中的每个字符串映射到相同的someString
值(如multimap)。 我怎么能用java 8流做到这一点?
我可以将其转换为平面地图,如下所示:
list.stream.flatMap(....
但我不知道从那里去哪里。
尝试这个。
Map<String, String> r = list.stream()
.flatMap(a -> a.stringList.stream()
.map(k -> new AbstractMap.SimpleEntry<>(k, a.someString)))
.collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue()));
我希望这有帮助。
List<String> fruits = Arrays.asList("Apple", "Orange", "Grape");
Map<String, String> myMap = fruits.stream().collect(Collectors.toMap(String::toString, String::toString));
myMap.forEach((k,v)->System.out.println("key : " + k + " value : " + v));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.