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());

...これは、1 行でコピーを作成するだけです。

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

これにより、HashSet コンストラクターに渡されるマップのキー セットとまったく同じ要素を含む Set が初期化されます。

于 2013-08-23T20:44:23.567 に答える