keySet()はハッシュマップからキーのセットのみを返すため、このキーセットを繰り返し、これらのキーを使用してハッシュマップから値を取得する必要があります。
あなたの例では、ハッシュマップのキーのタイプはTypeKey
ですTypeValue
が、一般的なforループで指定したため、コンパイルできません。次のように変更する必要があります。
for (TypeKey name: example.keySet()){
String key = name.toString();
String value = example.get(name).toString();
System.out.println(key + " " + value);
}
Java8の更新:
example.entrySet().forEach(entry->{
System.out.println(entry.getKey() + " " + entry.getValue());
});
キー値を出力する必要がなく、ハッシュマップ値だけが必要な場合は、他の人の提案を使用できます。
別の質問:このコレクションはゼロベースですか?キーが1つあり、値が0または1の場合、
返されたコレクションは、keySet()
あるセットのそれはそれはゼロベースまたは1をベースとされているかどうかの問題ではありませんので。あなたは、インデックスを使用して、設定から値を取得することはできません。ハッシュマップに1つのキーがある場合、返されるkeySet()には1つのエントリがあり、そのサイズは1になります。
Map
のsize()
メソッドのドキュメントです。「このマップのキーと値のマッピングの数を返します。マップに複数のInteger.MAX_VALUE
要素が含まれている場合は、を返しますInteger.MAX_VALUE
。」