📅  最后修改于: 2023-12-03 15:23:24.492000             🧑  作者: Mango
Java中的映射(Map)是用于存储键值对的数据结构。映射中的键是唯一的,而值可以重复。Java中的映射接口有多种实现,包括HashMap、TreeMap等。其中,HashMap是最常用的实现之一。
在Java中,映射的keySet()方法是获取映射中所有键的集合。通过keySet()方法可以实现对映射中key的迭代遍历,或使用Java中的forEach()方法进行遍历操作。
以下是keySet()方法的语法:
Set<K> keySet()
其中,K表示键的数据类型,Set
以下是一个简单的Map示例:
Map<String, Integer> personAge = new HashMap<String, Integer>();
personAge.put("John", 25);
personAge.put("Amy", 23);
personAge.put("David", 30);
personAge.put("Lisa", 27);
我们可以使用keySet()方法获取Map中所有的键,并使用foreach()方法进行遍历操作。例如:
Set<String> keySet = personAge.keySet();
for (String name : keySet) {
System.out.println(name + " 的年龄为 " + personAge.get(name));
}
输出结果为:
John 的年龄为 25
Amy 的年龄为 23
David 的年龄为 30
Lisa 的年龄为 27
在上面的示例中,我们首先使用keySet()方法获取Map中所有的键,然后使用foreach()方法遍历所有的键,并获取对应的值。需要注意的是,在遍历Map时,键值对的顺序是无序的。
我们还可以使用keySet()方法和Java 8中引入的stream()方法进行一些操作。例如,我们可以使用stream()方法获取年龄大于25的人的姓名,示例代码如下:
Set<String> result = personAge.entrySet()
.stream()
.filter(e -> e.getValue() > 25)
.map(Map.Entry::getKey)
.collect(Collectors.toSet());
System.out.println(result);
输出结果为:
[David, Lisa]
在上例中,我们使用entrySet()方法获取映射中所有的键值对,然后使用stream()方法对键值对进行过滤,只保留满足条件(年龄大于25)的键值对。接着,我们使用map()方法将满足条件的键值对的键(即人名)提取出来,最后使用collect()方法将符合条件的键保存到一个Set集合中。