Map的遍历
1.JDK7上hashmap的文档:
java.util
Class HashMap<K,V>
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.HashMap<K,V>
-
-
Type Parameters:
-
K
- the type of keys maintained by this map -
V
- the type of mapped values
-
All Implemented Interfaces:
- Serializable, Cloneable, Map<K,V>
-
Direct Known Subclasses:
- LinkedHashMap, PrinterStateReasons
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
-
map,HashMap不实现Iterable<E>接口,所以不能 Iterator it=map.iterator();
可用Set或者HashSet声明map,hashmap
e.g.
HashMap<Interger,String> map=new HashMap<Interger,String>();
map.put("1,"aaa");
map.put(2,"bbb");
map.put(3,"ccc");
Set<HashMap.entry<Interger,String>> set=map.entrySet();
Iterator<HashMap.entry<Interger,String>> it=set.iterator();
while(it.hasNext()){
Map<HashMap.entry<Interger,String>> a=it.next();
}
(1)map.keySet().iterator
Iterator it=map. keySet(). iterator();
while(it.hasNext())
{
//ip.next()取的是Hashmap中key的值
再用map.get(key)取value
String key=(String)it.next();
System.out.println(str+map.get(key));
}
(2) 速度快 用map.entryset()
a. 设置一个entry
b. key=entry.getKey()
c. value=entry.getValue()
Set set =map.entrySet();
Iterator it=map.entrySet().iterator();
(Iterator it=set.iterator) while(it.hasNext()) { HashMap.Entry entry= (HashMap.Entry) it.next(); Object a=entry.getKey(); Object b=entry.getValue(); System.out.print(a+" "); System.out.println(b); }
(3)增强for循环 (只取数据,不修改数据)
第一种
for(Object obj : map.keySet())
{
String key=(String ) obj.next();
Stiring value= (String ) map.get(key);
}
第二种entry
Set set=map.entrySet();
for(Object obj: set)
{
Map.entry entry =(Entry) obj;
String key= (String) entry.getKey();
String value=(String) entry.getValue();
}