TAu*_*sti 1 java string key-value java-8 java-stream
我想转换以下内容
String flString="view1:filedname11,view1:filedname12,view2:fieldname21";
Run Code Online (Sandbox Code Playgroud)
到 aMap<String,Set<String>>获取键/值如下:
view1=[filedname11,filedname12]
view2=[fieldname21]
Run Code Online (Sandbox Code Playgroud)
我想使用 Java 8 流。我试过
view1=[filedname11,filedname12]
view2=[fieldname21]
Run Code Online (Sandbox Code Playgroud)
然而,键也被添加到值列表中。
您应该使用 aCollectors::mapping将数组映射到元素。
String flString = "view1:filedname11,view1:filedname12,view2:fieldname21";
Map<String, List<String>> map = Pattern.compile(",")
.splitAsStream(flString)
.map(a -> a.split(":"))
.collect(
Collectors.groupingBy(a -> a[0],
Collectors.mapping(a -> a[1], Collectors.toList())
)
);
map.entrySet().forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
输出
String flString = "view1:filedname11,view1:filedname12,view2:fieldname21";
Map<String, List<String>> map = Pattern.compile(",")
.splitAsStream(flString)
.map(a -> a.split(":"))
.collect(
Collectors.groupingBy(a -> a[0],
Collectors.mapping(a -> a[1], Collectors.toList())
)
);
map.entrySet().forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
392 次 |
| 最近记录: |