![](/img/trans.png)
[英]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.