📅  最后修改于: 2023-12-03 15:15:57.035000             🧑  作者: Mango
在 Java 中,Map
接口是一种用于存储键值对的集合类型。其中,keySet()
和 values()
是两个常用的方法,它们都返回 Map
中的值集合。但是,它们之间有一些区别,本文将对它们进行介绍。
keySet()
方法keySet()
方法返回一个包含 Map
中所有键的 Set
视图。例如,下面的代码演示如何使用 keySet()
获取 Map
中的所有键:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("cherry", 3);
Set<String> keySet = map.keySet();
System.out.println(keySet); // 输出 [apple, banana, cherry]
可以发现,keySet()
方法返回的是 Map
中所有键的视图,因此,我们可以很方便地遍历该视图并获取相应的键值对。
values()
方法values()
方法返回一个包含 Map
中所有值的 Collection
视图。例如,下面的代码演示如何使用 values()
方法获取 Map
中的所有值:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("cherry", 3);
Collection<Integer> values = map.values();
System.out.println(values); // 输出 [1, 2, 3]
可以发现,values()
方法返回的是 Map
中所有值的视图,因此,我们可以很方便地遍历该视图并获取相应的键值对。
从上述代码和介绍可以看出,keySet()
和 values()
方法返回的视图类型不同,一个是 Set
,一个是 Collection
。此外,它们所返回的视图分别包含了 Map
中的键和值。
使用 keySet()
方法,我们可以直接访问 Map
中的键,并通过键来获取相应的值,如下所示:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("cherry", 3);
Set<String> keySet = map.keySet();
for (String key : keySet) {
System.out.println(key + " : " + map.get(key));
}
而使用 values()
方法,我们可以直接访问 Map
中的值,如下所示:
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("cherry", 3);
Collection<Integer> values = map.values();
for (Integer value : values) {
System.out.println(value);
}
综上所述,keySet()
方法和 values()
方法都可以用于遍历 Map
中的键值对,但是它们的返回值类型不同,需要根据具体的需求来选择使用。