您的位置 首页 java

Java中Map的4种遍历方式

第一种方式:这是平常用的最多也最可取的一种遍历方式。

for (Map.Entry<String, Object> entry : map.entrySet()) {
 System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());
 
 

第二种方式:如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet,该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

// 遍历key
 for (String key : map.keySet()) {
 System.out.println("key=" + key);
 }
// 遍历value
 for (Object value : map.values()) {
 System.out.println("value=" + value);
 }
 

第三种方式:使用 Iterator 进行遍历Map。

Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator();
 while (entries.hasNext()) {
 Entry<String, Object> entry = entries.next();
 System.out.println("key=" + entry.getKey() + ",value=" + entry.getValue());
 }
 

Java中Map的4种遍历方式

注意:在遍历过程中remove操作,只能用iterator遍历方式,其他遍历会抛异常,(顺便补充,list通过Iterator方式可正确遍历完成remove操作,直接调用list的remove方法就会抛异常)。

Iterator<Map.Entry<String, Object>> it = map.entrySet().iterator();
 while (it.hasNext()) {
 Map.Entry<String, Object> entry = it.next();
 String key = entry.getKey();
 if (key.equals("1")) {
 System.out.println("remove的key= " + key);
 it.remove();
 System.out.println("key=" + key + "已移除");
 }
 }
 for (String key : map.keySet()) {
 System.out.println("key=" + key + ",value=" + map.get(key));
 }
 

list的遍历中remove。

//会抛ConcurrentModificationException异常
for(String str : list){
 list.remove(str);
}
//正确遍历移除方式
Iterator<String> it = list.iterator();
while(it.hasNext()){
 it.next();
 it.remove();
}
 

第四种遍历方式:通过键找值遍历,缺点,效率低,本身从键取值是耗时的操作。

for (String key : map.keySet()) {
 Object value = map.get(key);
 System.out.println("key=" + key + ",value=" + value);
 }
 

文章来源:智云一二三科技

文章标题:Java中Map的4种遍历方式

文章地址:https://www.zhihuclub.com/196145.shtml

关于作者: 智云科技

热门文章

网站地图