服务时间:8:30-18:00

首页 >java学习网

java怎么遍历map

发布时间:2023-12-14 10:47 字数:1293字 阅读:57

java怎么遍历map?在Java中,有多种方式可以遍历Map。下面列举了几种常见的方法:

java怎么遍历map

1. 使用`keySet()`遍历键:
```java
Map<KeyType, ValueType> map = new HashMap<>();
// 添加键值对到map

for (KeyType key : map.keySet()) {
    ValueType value = map.get(key);
    // 处理键和对应的值
}
```

2. 使用`entrySet()`遍历键值对:
```java
Map<KeyType, ValueType> map = new HashMap<>();
// 添加键值对到map

for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
    KeyType key = entry.getKey();
    ValueType value = entry.getValue();
    // 处理键和对应的值
}
```

3. 使用迭代器(Iterator)遍历键或键值对:
```java
Map<KeyType, ValueType> map = new HashMap<>();
// 添加键值对到map

Iterator<KeyType> keyIterator = map.keySet().iterator();
while (keyIterator.hasNext()) {
    KeyType key = keyIterator.next();
    ValueType value = map.get(key);
    // 处理键和对应的值
}

Iterator<Map.Entry<KeyType, ValueType>> entryIterator = map.entrySet().iterator();
while (entryIterator.hasNext()) {
    Map.Entry<KeyType, ValueType> entry = entryIterator.next();
    KeyType key = entry.getKey();
    ValueType value = entry.getValue();
    // 处理键和对应的值
}
```

需要注意的是,在遍历过程中,如果你需要对Map进行修改(如删除键值对),建议使用迭代器的`remove()`方法,而不是直接使用`map.remove()`方法,以避免`ConcurrentModificationException`异常。

另外,Java 8引入了Lambda表达式和Stream API,可以更简洁地遍历Map。例如:
```java
Map<KeyType, ValueType> map = new HashMap<>();
// 添加键值对到map

map.forEach((key, value) -> {
    // 处理键和对应的值
});
```

这些方法都可以用于遍历任何实现了`Map`接口的类,如`HashMap`、`TreeMap`等。