📜  Java中的属性 keySet() 方法及示例(1)

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

Java中的属性 keySet() 方法及示例

简介

在Java中,Map是一种常用的数据结构,用于存储键值对。Map中的键是唯一的,可以使用keySet()方法获取Map中所有的键。keySet()方法返回一个Set集合,集合中的元素就是Map中的键。

语法
public Set<K> keySet()
参数

返回值

返回一个Set集合,包含Map中的所有键。

示例

下面是一个简单的示例,演示了如何使用keySet()方法获取Map中的所有键:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("apple", 1);
        map.put("banana", 2);
        map.put("orange", 3);

        Set<String> keys = map.keySet();

        for(String key : keys) {
            System.out.println(key);
        }
    }
}

以上代码输出结果为:

orange
banana
apple

需要注意的是,keySet()方法返回的集合是一个视图,即它与原Map是共享的,改变集合会影响原Map中的键。例如:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("apple", 1);
        map.put("banana", 2);
        map.put("orange", 3);

        Set<String> keys = map.keySet();
        keys.remove("banana");

        for(String key : keys) {
            System.out.println(key);
            // 输出结果为:orange apple
        }

        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue());
            // 输出结果为:orange 3 apple 1
        }
    }
}

在上面的例子中,我们尝试从keySet()方法返回的集合中删除了一个键"banana",结果发现原Map中的键也被删除了。这是因为它们共享同一份数据。因此,在使用keySet()方法时应该小心,如果不希望影响原Map,应将集合复制到另一个集合中再进行操作。