map的遍历和一般集合的遍历

map的遍历方式(以HashMap为例):

HashMap<String,String> hashmap=new HashMap<String,String>();


遍历key+value:


用entrySet遍历

方案1

Iterator<Entry<String,String>> iter=hashmap.entrySet().iterator();

Entry<String,String> entry;

while(iter.hasNext()){

   entry=iter.next();

   key=entry.getKey();

   value=entry.getValue();

}

方案2

for(Entry<String,String> entry: hashmap.entrySet()){

   key=entry.getKey();

   value=entry.getValue();

}


用keySet遍历

方案1

Iterator<String> iter=hashmap.keySet().iterator();

while(iter.hasNext()){

   key=iter.next();

   value=hashmap.get(key);

}

方案2

for(String key: hashmap.keySet()){

   输出key

   value=hashmap.get(key);

}



遍历value:


除了上述俩种方法实现(略),还有另一种方法用values实现

方案1

Iterator<String> iter=hashmap.values().iterator();

while(iter.hasNext()){

   iter.next();

}

方案2

for(String value: hashmap.values()){

   输出value

}


总结:

遍历key+value时用entrySet效率高;

遍历key时用keySet效率高;

遍历value时用values效率高;



一般集合的遍历:


用Enumeration接口遍历:


Enumeration接口常用的方法有hasMoreElements()(判断是否有下一个值)和nextElement()(取出当前元素),这些方法的功能跟Iterator类似,只是Iterator中存在删除数据的方法,而此接口不存在删除操作。


用Iterator接口遍历:

使用Iterator来遍历集合时,常用方法hasNext()next()。可以使用Iterator的remove()方法来删除集合中的元素,如果使用使用集合的remove()方法将抛出ConcurrentModificationException异常。

你可能感兴趣的:(map的遍历和一般集合的遍历)