Java でマップ (HashMap) の列挙 (キー用) を取得しますか? 質問する

Java でマップ (HashMap) の列挙 (キー用) を取得しますか? 質問する

私の理解する限りでは、Enumerationのキーに対して を直接取得する直接的な方法はないようですHashMap。 しか取得できませんkeySet()。 そこから をSet取得できますが、Iteratorは とIteratorは異なるもののようですEnumeration

Enumerationのキーから を直接取得するための最良かつ最もパフォーマンスの高い方法は何ですかHashMap?

背景: 私は独自のリソースバンドル(=>getKeys()メソッド)、すべてのキーの列挙を返すメソッドを提供/実装する必要があります。しかし、私の実装は に基づいているHashMapため、これら 2 つの「反復子/列挙子」手法間で最適な変換を行う方法を何らかの方法で見つけ出す必要があります。

ベストアンサー1

この方法を使えばいいと思います列挙からjava.util.コレクションあなたが望むものを達成するためのクラス。

enumerate メソッドの API ドキュメントには次のように書かれています。

パブリック静的列挙列挙(コレクション c)
指定されたコレクションの列挙を返します。これにより、入力として列挙を必要とする従来の API との相互運用性が実現します。

たとえば、以下のコードスニペットは、HashMapのキーセットからEnumerationのインスタンスを取得します。

 final Map <String,Integer> test = new HashMap<String,Integer>();
 test.put("one",1);
 test.put("two",2);
 test.put("three",3);
 final Enumeration<String> strEnum = Collections.enumeration(test.keySet());
 while(strEnum.hasMoreElements()) {
     System.out.println(strEnum.nextElement());
 }

結果の出力は次のようになります。
1
2
3

おすすめ記事