📜  在Java中映射 keySet() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:23:24.492000             🧑  作者: Mango

在Java中映射 keySet() 方法

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集合中。