Java 8 forEach示例

1. map使用forEach

1.1 普通方式循环Map。

  1. Map<String, Integer> items = new HashMap<>();
  2. items.put("A", 10);
  3. items.put("B", 20);
  4. items.put("C", 30);
  5. items.put("D", 40);
  6. items.put("E", 50);
  7. items.put("F", 60);
  8. for (Map.Entry<String, Integer> entry : items.entrySet()) {
  9. System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue());
  10. }

1.2在Java 8中,可以使用Map + lambda表达式循环forEach

  1. Map<String, Integer> items = new HashMap<>();
  2. items.put("A", 10);
  3. items.put("B", 20);
  4. items.put("C", 30);
  5. items.put("D", 40);
  6. items.put("E", 50);
  7. items.put("F", 60);
  8. items.forEach((k,v)->System.out.println("Item : " + k + " Count : " + v));
  9. items.forEach((k,v)->{
  10. System.out.println("Item : " + k + " Count : " + v);
  11. if("E".equals(k)){
  12. System.out.println("Hello E");
  13. }
  14. });

2. List使用forEach

2.1 使用for-loop循环列表。

  1. List<String> items = new ArrayList<>();
  2. items.add("A");
  3. items.add("B");
  4. items.add("C");
  5. items.add("D");
  6. items.add("E");
  7. for(String item : items){
  8. System.out.println(item);
  9. }

2.2在Java 8中,可以使用List + lambda表达式或方法引用来循环forEach

  1. List<String> items = new ArrayList<>();
  2. items.add("A");
  3. items.add("B");
  4. items.add("C");
  5. items.add("D");
  6. items.add("E");
  7. //lambda
  8. //Output : A,B,C,D,E
  9. items.forEach(item->System.out.println(item));
  10. //Output : C
  11. items.forEach(item->{
  12. if("C".equals(item)){
  13. System.out.println(item);
  14. }
  15. });
  16. //method reference
  17. //Output : A,B,C,D,E
  18. items.forEach(System.out::println);
  19. //Stream and filter
  20. //Output : B
  21. items.stream()
  22. .filter(s->s.contains("B"))
  23. .forEach(System.out::println);