java遍历map的几种方法,哪种最高效
时间: 2023-07-08 12:46:51 浏览: 119
Java遍历Map的几种方法包括:
1. 使用entrySet()方法遍历,在for-each循环中使用Map.entrySet()方法,将Map转化为Set集合,可以遍历Map中的每个键值对。这种方法可以同时获取键和值,但是效率不高。代码如下:
```
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
```
2. 使用keySet()方法遍历,在for-each循环中使用Map.keySet()方法,可以遍历Map中的所有键,然后通过get()方法获取对应的值。这种方法只能获取键和值需要通过get()方法获取,效率比较低。代码如下:
```
for (Integer key : map.keySet()) {
System.out.println("Key = " + key + ", Value = " + map.get(key));
}
```
3. 使用values()方法遍历,在for-each循环中使用Map.values()方法,可以遍历Map中的所有值,但是无法获取对应的键。这种方法只能获取值,不能获取键,效率比较低。代码如下:
```
for (String value : map.values()) {
System.out.println("Value = " + value);
}
```
4. 使用迭代器遍历,在使用迭代器Iterator遍历Map时,可以使用Map.entrySet().iterator()方法获取迭代器,然后使用hasNext()和next()方法遍历Map中的键值对。这种方法可以同时获取键和值,效率比较高。代码如下:
```
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
```
其中,使用迭代器遍历是最高效的方法,因为它不需要将Map转化为Set集合,直接在Map上遍历,效率最高。
阅读全文