大家好,小弟有个关于HashMap的问题请教,多谢了
小弟java刚入门,想请教大家:
Map map = new HashMap();
map.put( "key1 ", "value1 ");
map.put( "key2 ", "value2 ");
map.put( "key3 ", "value1 ");
map.put( "key4 ", "value1 ");
小弟想把value相同的所有key合并成一个字符串,
比如值为value1对应的所有key为: "key1 " + "key3 " + "key4 "
值为value2对应的所有key就只有 "key2 "
请问这如何实现,多谢大家了!
------解决方案--------------------为什么要合这个呢,不能进去前 合了。或者出来才合。把详细的应用说下看
------解决方案--------------------Map不大就采用最老的循环做吧。
比较value相等就连接key
------解决方案--------------------换个思路,新建 Map 让其键值互换,就方便多了。
public static void main(String[] args) {
Map <String, String> map = new HashMap <String, String> ();
map.put( "key1 ", "value1 ");
map.put( "key2 ", "value2 ");
map.put( "key3 ", "value1 ");
map.put( "key4 ", "value1 ");
Map <String, String> map2 = new HashMap <String, String> ();
for (Map.Entry <String, String> entry : map.entrySet()) {
String value = map2.get(entry.getValue());
if (value == null) {
value = entry.getKey();
} else {
value = value + ", " + entry.getKey();
}
map2.put(entry.getValue(), value);
}
// 输出结果
for (Map.Entry <String, String> entry : map2.entrySet()) {
System.out.println(entry.getKey() + " --> " + entry.getValue());
}
}