java8的新特性之遍历篇_Java8 forEach(示例代码)

这几天学了下java8的新特性,java8最显著的改变之一就是加入lambda表达式,这个以后再说。

定义少量的数据  对少量的数据进行遍历

Map map = new HashMap<>(16);

map.put("a",10);

map.put("b",20);

map.put("c",30);

map.put("d",40);

map.put("e",50);

//通常方法1 foreach entrySet遍历 entry是map里面定义的一个接口

for (Map.Entry entry:map.entrySet()){

}

//通常方法2 Iterator接口遍历

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

while (iterator.hasNext()){

Map.Entry entry = iterator.next();

}

//通常方法3 遍历keySet 通过key 取值

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

Integer value = map.get(key);

}

//java8 foreach+lambda表达式遍历

map.forEach((k,v)-> {

});

通过两个nanoTime相减 再除以1000 获得各个方式的遍历时间

forEach遍历时间:50

iterator遍历时间:5

遍历key再取值 遍历时间:230

java8 forEach遍历时间:84222

其中 iterator时间是最短的,forEach 实际上就是iterator的语意简化版 比iterator长一点,而遍历key再取值,相较于直接获得entry多了从hashmap 取出key所对应的value值,

而java8 forEach比其他两个方式耗时长了很多,所以如果系统的性能需求比较高的话,对集合循环的遍历,慎用forEach。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值