Java映射的非备份密钥集

Java映射的非备份密钥集,java,collections,Java,Collections,给定以下JavaHashMap: HashMap<String, Integer> map = new HashMap<String, Integer>(); HashMap map=newhashmap(); 下面的语句为我提供了一组“备份”的映射键: Set<Integer> keys = map.keySet(); Set keys=map.keySet(); 但是假设我想要一个密钥集的副本,我可以在不影响地图的情况下操作它。有比这更好/更正确的

给定以下Java
HashMap

HashMap<String, Integer> map = new HashMap<String, Integer>();
HashMap map=newhashmap();
下面的语句为我提供了一组“备份”的映射键:

Set<Integer> keys = map.keySet();
Set keys=map.keySet();
但是假设我想要一个密钥集的副本,我可以在不影响地图的情况下操作它。有比这更好/更正确的方法吗

Set<Integer> keys = new HashSet<Integer>();
for( Integer key : map.keySet() )
    keys.add( key );
Set key=newhashset();
for(整数键:map.keySet())
key.add(key);

有一个稍微简单一点的方法:

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

…只需在一行中复制副本。

有一种稍微简单的方法:

Set<Integer> keys = new HashSet<Integer>(map.keySet());
Set<Integer> keys = new HashSet<Integer>(map.keySet());
Set keys=newhashset(map.keySet());
…它只在一行中创建一个副本。

Set keys=new HashSet(map.keySet());
Set<Integer> keys = new HashSet<Integer>(map.keySet());
这将初始化一个集合,该集合包含传递到HashSet构造函数的映射键集中完全相同的元素。

Set keys=new HashSet(map.keySet());
这将初始化一个集合,该集合包含传递到HashSet构造函数的映射密钥集中完全相同的元素