Map<String, String> map = new HashMap<String, String>();
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
map.put("4", "d");
map.put("4", "e");// 插入重复元素 // 遍历
Set<Entry<String, String>> set = map.entrySet();
Iterator<Entry<String, String>> ito = set.iterator();
while(ito.hasNext()){
Entry<String, String> m= ito.next();
System.out.println(m.getKey()+" "+m.getValue());
}
输出结果为 :
3 c
2 b
4 e
1 a
这样存在的问题: 重复元素只输出一次,而且打乱存储的先后顺序 如果我需要解决这些问题 请教各位有效的遍历方式

解决方案 »

  1.   

    1,重复的 key 会保留最后一个 put 进去的值,这是 Map 的特性!
    2,由于采用的是 hash 顺序,所以出来的顺序是未定的,如果需要保持原有的顺序,可以使用 LinkedHashMap
      

  2.   

    用TreeMap是可以排序的!!!用LinkedHashMap是按照你的输入方式存储的
    不知道 你想要什么结果!!也许自定义一个实现Coparator接口的类  传递给TressMap  进行排序!也许效果更好