jdk1.8 foreach

lambda 表达式效率非常低,测试代码可以看到大概3~5倍的差距

 

遍历Map的方式有很多,通常场景下我们需要的是遍历Map中的Key和Value,那么推荐使用的:

  1. public static void main(String[] args)

  2. {

  3.    HashMaphm = new HashMap();

  4.    hm.put(“111”, “222”);

  5.    Set<Map.Entry<String, String>> entrySet = hm.entrySet();

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

  7.    while (iter.hasNext())

  8.    {

  9.         Map.Entry<String, String> entry = iter.next();

  10.         System.out.println(entry.getKey() + "\t" + entry.getValue());

  11.    }

  12. }

 

如果你只是想遍历一下这个Map的key值,那用”SetkeySet = hm.keySet();”会比较合适一些。

如果使用jdk1.8 

In Java 8, you can loop a Map with forEach + lambda expression.

Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); items.put("D", 40); items.put("E", 50); items.put("F", 60); items.forEach((k,v)->System.out.println("Item : " + k + " Count : " + v)); items.forEach((k,v)->{ System.out.println("Item : " + k + " Count : " + v); if("E".equals(k)){ System.out.println("Hello E"); } });
 -----------List遍历
List<String> items = new ArrayList<>(); items.add("A"); items.add("B"); items.add("C"); items.add("D"); items.add("E"); for(String item : items){ System.out.println(item); }

2.2 In Java 8, you can loop a List with forEach + lambda expression or method reference.

List<String> items = new ArrayList<>(); items.add("A"); items.add("B"); items.add("C"); items.add("D"); items.add("E"); //lambda //Output : A,B,C,D,E items.forEach(item->System.out.println(item)); //Output : C items.forEach(item->{ if("C".equals(item)){ System.out.println(item); } }); //method reference //Output : A,B,C,D,E items.forEach(System.out::println); //Stream and filter //Output : B items.stream() .filter(s->s.contains("B")) .forEach(System.out::println);

转载于:https://www.cnblogs.com/-xuzhankun/p/8059659.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值