java map集合如何取值_【Java集合的详细研究4】Java中如何遍历Map对象的4种方法

方法一 通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时

这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。

Map map = new HashMap();for (Map.Entryentry : map.entrySet()) {

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

}

方法二、通过Map.keySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值

Map map = new HashMap();for(Integer key : map.keySet()) {

Integer value=map.get(key);

System.out.println("Key = " + key + ", Value = " +value);

}

方法三 如果只需要map中的键或者值,你可以通过Map.keySet或Map.values来实现遍历,而不是用entrySet。在for-each循环中遍历keys或values。

Map map = new HashMap();//遍历map中的键

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

System.out.println("Key = " +key);

}//遍历map中的值

for(Integer value : map.values()) {

System.out.println("Value = " +value);

}

方法四:通过Map.entrySet使用iterator遍历key和value

Map map = new HashMap();

Iterator> entries =map.entrySet().iterator();while(entries.hasNext()) {

Map.Entry entry =entries.next();

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

}

全部代码:

public static voidmain(String[] args) {

init();

traversal();

}//HashMap按照哈希算法来存取键对象,有很好的存取性能

private static HashMap hMap = new HashMap<>();//TreeMap实现了SortedMap接口,能对键对象进行排序。支持自然排序和客户化排序两种方式。

private static TreeMap tMap = new TreeMap<>();//map的赋值

public static voidinit() {

hMap.put("1", "value1");

hMap.put("2", "value2");

hMap.put("3", "value3");

}//map的遍历

public static voidtraversal() {//第一种:普遍使用,二次取值

System.out.println("通过Map.keySet遍历key和value:");for(String key : hMap.keySet()) {

System.out.println("key= " + key + " and value= " +hMap.get(key));

}//第二种

System.out.println("通过Map.entrySet使用iterator遍历key和value:");

Iterator> it =hMap.entrySet().iterator();while(it.hasNext()) {

Map.Entry entry =it.next();

System.out.println("key= " + entry.getKey() + " and value= " +entry.getValue());

}//第三种:推荐,尤其是容量大时

System.out.println("通过Map.entrySet遍历key和value");for (Map.Entryentry : hMap.entrySet()) {

System.out.println("key= " + entry.getKey() + " and value= " +entry.getValue());

}//第四种

System.out.println("通过Map.values()遍历所有的value,但不能遍历key");for(String v : hMap.values()) {

System.out.println("value= " +v);

}

}

运行结果:

通过Map.keySet遍历key和value:

key= 1 and value= value1

key= 2 and value= value2

key= 3 and value= value3

通过Map.entrySet使用iterator遍历key和value:

key= 1 and value= value1

key= 2 and value= value2

key= 3 and value= value3

通过Map.entrySet遍历key和value

key= 1 and value= value1

key= 2 and value= value2

key= 3 and value= value3

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

value= value1

value= value2

value= value3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值