【发布时间】:2019-03-21 20:34:22
【问题描述】:
我有一个像101-1-5,101-2-4,102-1-5,102-2-5,102-3-5,103-1-4 这样的字符串。
我想将此添加到Map<String, Map<String, String>>。
点赞:{101={1=5, 2=4}, 102={1=5, 2=5, 3=5}, 103={1=4}}
如何使用 Java 8 流来做到这一点?
我尝试使用普通的 Java。而且效果很好。
public class Util {
public static void main(String[] args) {
String samp = "101-1-5,101-2-4,102-1-5,102-2-5,102-3-5,103-1-4";
Map<String, Map<String, String>> m1 = new HashMap<>();
Map<String, String> m2 = null;
String[] items = samp.split(",");
for(int i=0; i<items.length; i++) {
String[] subitem = items[i].split("-");
if(!m1.containsKey(subitem[0]) || m2==null) {
m2 = new HashMap<>();
}
m2.put(subitem[1], subitem[2]);
m1.put(subitem[0], m2);
}
System.out.println(m1);
}
}
【问题讨论】:
标签: java split java-8 java-stream