小弟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"
请问这如何实现,多谢大家了!

解决方案 »

  1.   

    多谢答复,得到的就是这样的一个Map,请问有没有什么思路啊,给小弟点提示?
      

  2.   

    Map不大就采用最老的循环做吧。
    比较value相等就连接key
      

  3.   

    换个思路,新建 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());
      }
    }
      

  4.   

    bao110908(长牙了,好痛) 强!!!
    学习
      

  5.   

    多谢各位,特别感谢bao110908(长牙了,好痛)!