📅  最后修改于: 2023-12-03 14:42:15.239000             🧑  作者: Mango
在Java的Map接口中,有两个常用的方法keySet()和entrySet(),它们分别返回Map中的键集和键值对集合。这两个方法在功能上有所不同,下面将详细介绍它们的区别。
keySet()方法返回一个Set集合,其中包含Map中所有的键。这个Set集合可以用来遍历Map中的所有键,也可以用来判断某个键是否存在于Map中。以下是keySet()方法的一些特点:
Set<K>
,其中K
是Map中键的类型。下面是使用keySet()方法遍历Map的示例代码:
Map<String, Integer> map = new HashMap<>();
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
Set<String> keySet = map.keySet();
for (String key : keySet) {
Integer value = map.get(key);
System.out.println(key + " : " + value);
}
entrySet()方法返回一个包含Map中所有键值对的Set集合。这个Set集合可以用来遍历Map中的所有键值对,也可以用来对键值对进行修改或删除操作。以下是entrySet()方法的一些特点:
Set<Map.Entry<K, V>>
,其中K
和V
分别是Map中键和值的类型。下面是使用entrySet()方法遍历Map的示例代码:
Map<String, Integer> map = new HashMap<>();
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
for (Map.Entry<String, Integer> entry : entrySet) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + " : " + value);
}
keySet()方法返回的是Map中所有的键的集合,可以用来遍历键,但无法直接获取对应的值。而entrySet()方法返回的是Map中所有的键值对的集合,可以用来遍历键值对,并且可以通过Entry对象获取键和值。
使用keySet()方法遍历Map时,需要通过键获取值,效率稍低。而使用entrySet()方法遍历Map时,可以直接获取到键值对,效率较高。因此,在只需要遍历Map中的键时,可以使用keySet()方法;在需要遍历键值对或对键值对进行修改时,应使用entrySet()方法。