一:
for (Object in : map.keySet()) {
//map.keySet()返回的是所有key的值
Object value = map.get(in);//得到每个key多对用value的值
}
二:
Iterator<Map.Entry> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = it.next();
Object key= entry.getKey();
Object value= entry.getValue();
}
三:
for (Map.Entry entry : map.entrySet()) {
//Map.entry 映射项(键-值对)
//map.entrySet() 返回此映射中包含的映射关系的 Set视图。
Object key= entry.getKey();
Object value= entry.getValue();
}
四:
for (Object v : map.values()) {
Object value = v;
}
关于遍历删除, 由于在遍历的时候是不能直接删除的, 所以需要做些手法
一:
建个List tmplist = new ArrayList();
把要删除的对象放进list里,再遍历list删除
for (Map.Entry entry : map.entrySet()) {
tmplist.add(entry.getKey());
}
for(List key : tmplist){
map.remove(key);
}
但对于涉及到中间插入多线程操作时,此方法不好使,所以再来个方法:
二:复制一个map, 用复制的map来遍历,再对原map进行操作
HashMap tmpmap = new HashMap(map);
for (Map.Entry entry : tmpmap.entrySet()) {
map.remove(entry.getKey());
}