在Java中,Map是一种键值对的集合,用于存储键值对的数据结构。它提供了一种通过键来查找和访问值的方式,每个键都是唯一的,而值可以重复。
特点和常见实现类
-
键值对的存储:Map以键值对(key-value pair)的形式存储数据,每个键都映射到一个值。通过键可以快速访问对应的值,类似于字典或者关联数组的概念。
-
键的唯一性:在同一个Map中,每个键必须是唯一的。如果添加具有相同键的新条目,则会替换旧的条目。
五种遍历方式
1.使用EntrySet遍历
java
public class MapTraversalExample {
public static void main(String[] args) {
// 创建一个HashMap并添加一些元素
Map<String, Integer> map = new HashMap<>();
map.put("Alice", 25);
map.put("Bob", 30);
map.put("Charlie", 35);
// 1. 使用EntrySet遍历
System.out.println("1. 使用EntrySet遍历:");
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
2. 使用KeySet遍历
java
// 2. 使用KeySet遍历
System.out.println("2. 使用KeySet遍历:");
for (String key : map.keySet()) {
System.out.println("Key: " + key + ", Value: " + map.get(key));
}
3. 使用Lambda表达式遍历(Java 8及以上)
java
// 3. 使用Lambda表达式遍历(Java 8及以上)
System.out.println("3. 使用Lambda表达式遍历:");
map.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));
4. 使用Iterator遍历
java
// 4. 使用Iterator遍历
System.out.println("4. 使用Iterator遍历:");
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
- 使用Stream API遍历(Java 8及以上)
java
// 5. 使用Stream API遍历(Java 8及以上)
System.out.println("5. 使用Stream API遍历:");
map.entrySet().stream()
.forEach(entry -> System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()));