# Java 8 Lambda 映射`foreach`

> 原文： [https://javabeginnerstutorial.com/core-java-tutorial/java-8-lambda-foreach-map/](https://javabeginnerstutorial.com/core-java-tutorial/java-8-lambda-foreach-map/)

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

### 在 Java 8 之前

```java
class java_5_enhancedForLoop_Map {
	public static void main(String[] args) {

		Map<String, String> jbtObj = new HashMap<String, String>();
		jbtObj.put("Website Name","Java Beginners Tutorial");
		jbtObj.put("Language", "Java");
		jbtObj.put("Topic", "Collection");

		for (Map.Entry<String, String> entry : jbtObj.entrySet()) {
			System.out.println(entry.getKey() + " : "+ entry.getValue());
		}

		// Iterating over collection object using iteration even before Java 5
		Iterator<Entry<String, String>> iterator = jbtObj.entrySet().iterator();
		while (iterator.hasNext()) {
			Entry<String, String> thisEntry = (Entry<String, String>) iterator.next();
			Object key = thisEntry.getKey();
			Object value = thisEntry.getValue();
			System.out.println(key+" : "+value);
		}
	}
}
```

### 在 Java 8 之后使用 Lambda 表达式

```java
public class java_8_forEach_Map {
	public static void main(String[] args) {
		Map<String, String> jbtObj = new HashMap<String, String>();
		jbtObj.put("Website Name","Java Beginners Tutorial");
		jbtObj.put("Language", "Java");
		jbtObj.put("Topic", "Collection");

		jbtObj.forEach((key,value) -> System.out.println(key+" :"+value));
	}
}
```

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