让我们说我正在阅读像ArrayList这样的一串长字符串......
Green,Jim,Bob,Dan
Blue,Chris,Al,Jeff
Orange,Mark
我想将这些值映射到HashMap中,颜色为键,名称为映射值。
我想出了如何将颜色作为关键,但我不知道如何将映射值作为名称。
代码:
for (int i = 0; i < namesAndColors.size(); i++) {
String linetoSplit = namesAndColors.get(i);
String colors= linetoSplit.split(",")[0];
hm.put(colors, ***);
}
System.out.println(hm);
}
现在输出类似于:
[Green = , Blue= , Orange= ]
期望的输出:
[Green = Jim Bob Dan, Blue = Chris Al Jeff, Orange = Mark]
答案 0 :(得分:0)
添加以下内容
String colors= linetoSplit.split(",")[0];
List<String> temp = new ArrayList<String>();
for(int j = 1; j < linetosplit.lenght; j++)
temp.add(linetosplit[i]);
hm.put(colors, temp);
我假设Hashmap为< String, List< String > >
,并在我添加的部分合适之前假设您的其他操作。
答案 1 :(得分:0)
你可以让JDK为你做繁重的工作:
for (String str : namesAndColors)
hm.put(str.replaceAll(",.*", ""), Arrays.asList(str.replaceAll("^.*?,", "").split(",")));
请注意使用更简单的foreach循环。