Java 8 Lambda 映射foreach

原文: https://javabeginnerstutorial.com/core-java-tutorial/java-8-lambda-foreach-map/

您一定已经听说过 Java 8 中引入的 Lambda 表达式。很快,我们将介绍有关它的详细主题。 但是现在在本文中,我将展示如何使用 Lambda 表达式来迭代集合。

在 Java 8 之前

  1. class java_5_enhancedForLoop_Map {
  2. public static void main(String[] args) {
  3. Map<String, String> jbtObj = new HashMap<String, String>();
  4. jbtObj.put("Website Name","Java Beginners Tutorial");
  5. jbtObj.put("Language", "Java");
  6. jbtObj.put("Topic", "Collection");
  7. for (Map.Entry<String, String> entry : jbtObj.entrySet()) {
  8. System.out.println(entry.getKey() + " : "+ entry.getValue());
  9. }
  10. // Iterating over collection object using iteration even before Java 5
  11. Iterator<Entry<String, String>> iterator = jbtObj.entrySet().iterator();
  12. while (iterator.hasNext()) {
  13. Entry<String, String> thisEntry = (Entry<String, String>) iterator.next();
  14. Object key = thisEntry.getKey();
  15. Object value = thisEntry.getValue();
  16. System.out.println(key+" : "+value);
  17. }
  18. }
  19. }

在 Java 8 之后使用 Lambda 表达式

  1. public class java_8_forEach_Map {
  2. public static void main(String[] args) {
  3. Map<String, String> jbtObj = new HashMap<String, String>();
  4. jbtObj.put("Website Name","Java Beginners Tutorial");
  5. jbtObj.put("Language", "Java");
  6. jbtObj.put("Topic", "Collection");
  7. jbtObj.forEach((key,value) -> System.out.println(key+" :"+value));
  8. }
  9. }

如您所见,通过单行代码,我们可以遍历Map。 同样,我们可以使用 Lambda 中引入的过滤器过滤出结果。