zoukankan      html  css  js  c++  java
  • Java 8 forEach简单例子(转载)

    forEach and Map

      1.1 通常这样遍历一个Map

    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);
    
    for (Map.Entry<String, Integer> entry : items.entrySet()) {
        System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue());
    }

      1.2 在java8中你可以使用 foreach + 拉姆达表达式遍历

    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");
        }
    });

    forEach and List

      2.1 通常这样遍历一个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 在java8中你可以使用 foreach + 拉姆达表达式 或者 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);

    关于效率问题,网上有大神进行测试后总结出:最快的是增强for循环

    最终结论

        普通(数量级10W以下,非并行)遍历一个集合(List、Set、Map)如果在意效率,不要使用java8的foreach,虽然它很方便很优雅

        任何时候使用增强for循环是你不二的选择

    参考文档:
    1.Java 8 Iterable forEach JavaDoc
    2.Java 8 forEach JavaDoc

    转自:http://www.cnblogs.com/billyu/p/6118008.html

  • 相关阅读:
    oppo手机永久打开USB调试模式
    一个简单的php分页类代码(转载)
    php分页类的二种调用方法(转载)
    直流电与交流电的几点区别
    变压器的分类_变压器的作用
    静态无功补偿与动态无功补偿的区别(转载)
    无功补偿装置三种投切方式(转载)
    西门子plc串口通讯方式
    电动葫芦起吊重物时摇晃怎么办?
    电灯节电小知识的方法大全(转载)
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/java8ForEach.html
Copyright © 2011-2022 走看看