Java 8 forEach使用

石奈子發表於2017-07-29

Java8 ForEach

本片文章將展示怎麼用java8的forEach語法迴圈一個list或者map。

  • forEach 和Map

    • 通常的方式迴圈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());
          }
    • java8,使用Lambda表示式和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 和List

    • 通常的方式迴圈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);
          }
    • java8,使用Lambda表示式和foreach

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

翻譯

ricky 20170728

交流群:244930845

相關文章