2016-09-09 11 views
-6

ドキュメントから、それはインターフェイスであるSet<E>を返します。私はこのkeySet()によって返されたり、変数のキーが何をしているされて正確に理解していない、私はこれを書いjavaでHashMapのkeySet()メソッドを呼び出すと、どのようなオブジェクトが返されますか?

Set<E> keys = myHashMap.keySet(); 

と仮定する。

また、なぜ私はインターフェイスは、そのメソッドのいずれかを実装していないとして、この

Iterator<E> it = keys.iterator(); 

を行うことができると思います。

+0

基本的なJavaの本を読んでください。多態性に関する章は見逃せません。 – Tom

答えて

2

からiterator()を行うことができている理由だというSet<E>のスーパーインタフェースです

Map.keysetを意味し、このマップに含まれるキーのセットビューを返します。 セットはマップによってバックアップされているため、マップへの変更は セットに反映され、その逆もあります。反復が を超えている間にマップが変更された場合(イテレータ自身の削除 操作を除いて)、反復の結果は未定義です。

基本的には、私たちがそのオブジェクトに対してiterator()を呼び出すことができるSet Interfaceを実装するクラスのオブジェクトです。

0

HashMap.keySet()は、ハッシュマップのキーのセットを返します。

HashMap<Integer, String> myHashMap = new HashMap<>(); 
myHashMap.put(1, "one"); 
myHashMap.put(2, "two"); 
myHashMap.put(3, "three"); 

Set<Integer> keys = myHashMap.keySet(); 
System.out.println("keys of the map are: "+keys); // prints [1, 2, 3] 

また、Set<E>Iterable<E>を延びる、Collection<E>を拡張します。それは()、Iterable<E>はあなたがJavaのドキュメントによるとSet<E>

0

myHashMap.keySet()は、このマップに含まれるキーのセットビューmyHashMapを返します。

  1. Mapkeyvalue対からなる:

    MapのようSetとは異なることに注意してください。 Keyは特定のvalueにマッピングされています。

  2. Setは、どのタイプの個々のオブジェクトでも構成されています。それらはペアで格納されません。

documentationを参照してください。


イテレータは何ですか?

コレクション内の要素を順番に調べたい場合は、たとえば、各要素を表示することができます。私たちの場合、返されるセットの各キーを表示する場合は、iteratorを使用します。

Iteratorを使用すると、要素を取得または削除してコレクションを循環させることができます。

関連する問題