java 全局 map_Java中遍历Map的几种方式

首先初始化一个全局 map

public static Map map = new HashMap() {

private static final long serialVersionUID = 1L;

{

put("name", "test");

put("gender", "man");

put("country", "China");

}

}

@BeforeClass

public void initMap() {

System.out.println(map); // {country=China, gender=man, name=test}

}

@AfterClass

public void clearMap() {

map.clear();

System.out.println(map); // {}

}

遍历 keySet

@Test

public readKeys() {

System.out.println(map.keySet()); // [country, gender, name]

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

System.out.println(key + ":" + map.get(key));

// country:China

// gender:man

// name:test

}

}

遍历 values

@Test

public readValues() {

System.out.println(map.values()); // [China, man, test]

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

System.out.println(val);

// China

// man

// test

}

}

遍历 entrySet (iterator遍历)

Iterator遍历优势:在用foreach只能实现遍历而不能进行删除操作,使用Iterator可以通过remove方法删除元素

@Test

public readEntrys() {

System.out.println(map.entrySet()); // [country=China, gender=man, name=test]

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

while(it.hasNext()) {

Map.Entry entry = it.next();

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

// country:China

// gender:man

// name:test

//it.remove();

}

}

forEach 结合 Lambda(需java8以上) 遍历 key,value

@Test

public readLambda() {

map.forEach((key, value) -> {

System.out.println(key + ":" + value);

// country:China

// gender:man

// name:test

});

}

操作建议

单纯获取key或者value,推荐使用keySe/values

获取entry推荐使用entrySet

遍历过程中需要删除元素推荐使用Iterator

遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值