![](/img/trans.png)
[英]How to convert List<Object> into List<Map<String,String>> in java8
[英]convert list of object into a map of <String,Map<String,Integer>> java8 streams
你好,我有一個對象列表,我的對象有三個字段
class MyObject{
String x;
String y;
int z;
//getters n setters
}
我需要將此列表轉換為Map<String,Map<String,Integer>>
就像這樣: {x1:{y1:z1,y2:z2,y3:z3},x2{y4:z4,y5:z5}}
格式我想在Java 8中這樣做,我認為我相對較新它。
我嘗試過以下方法:
Map<String,Map<String,Integer>> map=list.stream().
collect(Collectors.
groupingBy(MyObject::getX,list.stream().
collect(Collectors.groupingBy(MyObject::getY,
Collectors.summingInt(MyObject::getZ)))));
這甚至沒有編譯。 非常感謝幫助
你可以通過鏈接兩個groupingBy
Collector
和一個summingInt
Collector
:
Map<String,Map<String,Integer>> map =
list.stream()
.collect(Collectors.
groupingBy(MyObject::getX,
Collectors.groupingBy(MyObject::getY,
Collectors.summingInt(MyObject::getZ))));
我希望我能得到你想要的邏輯。
向輸入List
添加以下內容時:
list.add(new MyObject("A","B",10));
list.add(new MyObject("A","C",5));
list.add(new MyObject("A","B",15));
list.add(new MyObject("B","C",10));
list.add(new MyObject("A","C",12));
你得到一個輸出Map
:
{A={B=25, C=17}, B={C=10}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.