Java地图的非支持密钥集

时间:2013-08-23 20:42:37

标签: java collections

鉴于以下Java HashMap

HashMap<String, Integer> map = new HashMap<String, Integer>();

以下语句为我提供了一组“支持”的地图键:

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

但是假设我想要一个我可以在不影响地图的情况下操纵的密钥集的副本。是否有比

更好/更正确的方式
Set<Integer> keys = new HashSet<Integer>();
for( Integer key : map.keySet() )
    keys.add( key );

2 个答案:

答案 0 :(得分:4)

有一种稍微简单的方法:

Set<Integer> keys = new HashSet<Integer>(map.keySet());

...只是在一行中复制。

答案 1 :(得分:1)

Set<Integer> keys = new HashSet<Integer>(map.keySet());

这将初始化一个Set,其中包含传递给HashSet构造函数的映射键集中完全相同的元素。