龙空技术网

java中Map集合遍历的四种方式

娱乐真谛 603

前言:

此刻你们对“map可以用迭代器遍历吗”大约比较关心,兄弟们都想要剖析一些“map可以用迭代器遍历吗”的相关资讯。那么小编也在网摘上网罗了一些有关“map可以用迭代器遍历吗””的相关文章,希望小伙伴们能喜欢,姐妹们一起来了解一下吧!

public class MapPractice {

public static void main(String[] args) {

Map<Integer,String> map = new HashMap<Integer,String>();

map.put(1, "李一");

map.put(2, "李二");

map.put(3, "李三");

map.put(4, "李四");

//1、通过Map.values()遍历所有的value,但不能遍历key

for(String S:map.values()) {

System.out.println(S);

}

System.out.println("-----------");

//2、使用map.entrySet()遍历Key和value,推荐,尤其是容量大时

for(Map.Entry<Integer,String> S:map.entrySet()){

System.out.println(S.getKey() + "," +S.getValue());

}

System.out.println("-----------");

//3、通过map.keySet()遍历key和value

for(Integer S:map.keySet()) {

System.out.println(S + "," + map.get(S));

}

System.out.println("-----------");

//4、通过map.entrySet()使用iterator遍历key和value

Iterator iterator = map.entrySet().iterator();

while(iterator.hasNext()) {

Map.Entry<Integer,String> entry = (Map.Entry<Integer,String>) iterator.next();

System.out.println(entry.getKey() + "," + entry.getValue());

}

}

}

map.entrySet()与map.keySet()的区别:

虽然使用keyset及entryset来进行遍历能取得相同的结果,但两者的遍历速度是有差别的。

keySet():迭代后只能通过get()取key,再根据key值取value。

entrySet():迭代后可以e.getKey(),e.getValue()取key和value。

keySet()的速度比entrySet()慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好,为了提高性能,所以通常用entrySet()方式来进行遍历。

标签: #map可以用迭代器遍历吗