美文网首页
Java8 教程第二章之forEach

Java8 教程第二章之forEach

作者: PrimaryKeyEnoch | 来源:发表于2019-08-11 16:22 被阅读0次

本套JAVA8教程由于是有英文翻译过来的,如果有翻译不对的地方还请多多包涵。

本节课先简单的介绍下Java8有哪些新特性,对于Java6/7版本做出哪些更改.那废话不多说,赶紧开始今天的课程吧.

这篇文章将向你展示遍历一个 List 和一个 Map 使用 Java 8 的forEach.

forEach 遍历 Map

通常情况下遍历 Map 是像下面这样.

public static void main(String[] args) {
       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());
       }
   }

在 Java 8 里面你可以用forEach + lambda表达式 来遍历 Map.

public static void main(String[] args) {
        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 遍历 List

   public static void main(String[] args) {
        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);
        }
    }

在 Java 8 里面你可以用forEach + lambda表达式 来遍历 Map 或者使用方法引用.

 public static void main(String[] args) {
        List<String> items = new ArrayList<>();
        items.add("A");
        items.add("B");
        items.add("C");
        items.add("D");
        items.add("E");

        items.forEach(s-> System.out.println(s));
      
        items.forEach(item->{
            if("C".equals(item)){
                System.out.println(item);
            }
        });
        // ---------更简化一步的表达-------
        //方法引用
        //Output : A,B,C,D,E
        items.forEach(System.out::println);
        //使用filter方法
        //过滤包含B的字符
        items.stream()
                .filter(s->s.contains("B"))
        .forEach(System.out::println);
    }

虽然本节课介绍的比较简单,但是还是介绍了几个关键语法,stream,filter,foreach, 至于他们更复杂的语法,我将会下面揭晓..
小伙伴赶紧动手实践起来吧

相关文章

网友评论

      本文标题:Java8 教程第二章之forEach

      本文链接:https://www.haomeiwen.com/subject/mbrsjctx.html