0

鉴于以下 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 );

?

4

2 回答 2

4

有一个稍微简单的方法:

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

...这只是在一行中制作副本。

于 2013-08-23T20:43:31.563 回答
1
Set<Integer> keys = new HashSet<Integer>(map.keySet());

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

于 2013-08-23T20:44:23.567 回答