keySet () yalnızca hashmap'inizden bir dizi anahtar döndürür, bu anahtar kümesini yinelemelisiniz ve bu anahtarları kullanarak hashmap'ten değeri almalısınız.
Örneğinizde, hashmap anahtarının türü TypeKey, ancak TypeValuejenerik for-loop'unuzda belirttiğiniz için derlenemez. Bunu şu şekilde değiştirmelisiniz:
for (TypeKey name: example.keySet()){
String key = name.toString();
String value = example.get(name).toString();
System.out.println(key + " " + value);
}
Java8 için güncelleme:
example.entrySet().forEach(entry->{
System.out.println(entry.getKey() + " " + entry.getValue());
});
Anahtar değerini yazdırmanız gerekmiyorsa ve yalnızca hashmap değerine ihtiyacınız varsa, başkalarının önerilerini kullanabilirsiniz.
Başka bir soru: Bu koleksiyon sıfır tabanlı mı? Demek istediğim, eğer 1 anahtarı varsa ve değeri 0 mı, 1 mi olacak?
Döndürülen koleksiyonu keySet()bir olan Set o sıfır tabanlı veya tek merkezli olup olmadığı bir soru değil bu yüzden .Arzu, bir dizin kullanarak bir Kümesinden değer elde edilemez. Karma haritanızın bir anahtarı varsa, döndürülen keySet () içinde bir giriş olur ve boyutu 1 olur.
Mapbireyinsize()bir yöntem : 'döndürür, bu harita anahtar değeri eşlemeler sayısı haritasını daha fazla içeriyorsaInteger.MAX_VALUEelemanları, geri dönüşInteger.MAX_VALUE.'