Java遍历Map的常用方法:
1、entrySet
通过使用entrySet遍历Map,也可以同时拿到key和value,这一种也是最常用的遍历方法
Map<Integer, Object> map = new HashMap<Integer, Object>();
// 通过entry同时获取key和value
public void testEntry() {
for (Map.Entry<Integer, String> entry : map.entrySet()) {
//获取key
System.out.println(entry.getKey());
//获取value
System.out.println(entry.getValue());
}
}
2、keySet get(key)
如果需要同时获取key和value,可以先获取key,然后再通过map的get(key)获取value
Map<Integer, Object> map = new HashMap<Integer, Object>();
//通过使用keySet map.get(key) 获取key and value
public void testKeySetAndGetKey() {
for (Integer key : map.keySet()) {
//获取key
System.out.println(key);
//通过get(key)获取value
System.out.println(map.get(key))
}
}
3、keySet values
如果只需要map的key或者value,用map的keySet或values方法无疑是最方便的
Map<Integer, Object> map = new HashMap<Integer, Object>();
// KeySet 获取key
public void testKeySet() {
for (Integer key : map.keySet()) {
System.out.println(key);
}
}
// values 获取value
public void testValues() {
for (String value : map.values()) {
System.out.println(value);
}
}
4、Iterator
对于上面的几种foreach都可以用Iterator代替,但是foreach的写法看起来更简洁
foreach 遍历在改变map大小时会报错;Iterator可以解决这个问题,可以使用Iterator的remove方法删除元素
Map<Integer, Object> map = new HashMap<Integer, Object>();
//使用entrySet 遍历同时获取key and value
public void testIterator() {
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
//输出获取的key和value
System.out.println(entry.getKey() + "=" + entry.getValue());
}
}