Map接口的实现类有HashMap和TreeMap等,底层分别使用哈希表和二叉树来实现存储。HashMap 散列图、Hashtable 散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序。若想要有顺序可以用LinkedHashMap
此容器中存储的键-值对,通过键来标识,所以键不能重复。可以将它看成有三个视图:键集、值集合(不是集)和键值对集。键和键值对形成了一个集,这是因为在映射表中一个键只能有一个副本。下列方法将返回这3个视图:
Set<K> keyset();
Colletion<K> values();
Set<Map.Entry<K,V>> entrySet();
对应Map集合的三种遍历方法:
public static voidmain(String[] args) {
Map<Integer,String> map=newHashMap<Integer,String>();
map.put(3,"A");
map.put(5,"B");
map.put(4,"E");
map.put(2,"D");
//第一种,得到左右key集合
Set<Integer> keys=map.keySet();
for(int i:keys){
System.out.println("<"+i+""+map.get(i)+">");
}
//第二种,得到所有的values值,不能遍历key
Collection<String>values=map.values();
for(String s:values){//也可以使用Iterator迭代器
System.out.println("<"+s+">");
}
//第三种,得到所有的键值对
for(Map.Entry<Integer,String>entry:map.entrySet()){
System.out.println("<"+entry.getKey()+""+entry.getValue()+">");
}
}
参考资料:
http://wzkunna.blog.163.com/blog/static/206198283201251823843802/