CompusaMedlem sedan jan. 20022 952 inlägg
Använder följande kod för att lopa ut nycklarna i mitt hash set, hur ska jag gå till väga för att inte bara få ut nycklarna utan också värdet som de representerar?
public String printItemInfo()
{
String returnString = "Föremål i rummet: ";
Set keys = itemsInRoom.keySet();
for(Iterator iter = keys.iterator(); iter.hasNext(); )
returnString += " " + iter.next();
return returnString;
}
CompusaMedlem sedan jan. 20022 952 inlägg
ViktorMedlem sedan aug. 20021 710 inlägg
Du får ta det värde som du får i "iter.next()" och hämta ut det data som är assosierat med den nyckeln,
public String printItemInfo()
{
String returnString = "Föremål i rummet: ";
Iterator iter=itemsInRoom.keySet().iterator();
//Jag förutsätter att nycklarna är av typen String
String room=null;
while(iter.hasNext())
{
room=(String)iter.next();
returnString+=" Rum: "+room+", "+itemsInRoom.get(room);
}
return returnString;
}
/Viktor
CompusaMedlem sedan jan. 20022 952 inlägg
Tack för svaret Victor. Sitter med ett Zuul-projekt (textbaserat spel). Har en klass som heter rum och en som heter item. Varje rum ska kunna ha ett obegränsat antal items. Vad jag kom fram till så är det bättre att använda en ArrayList i detta fall eller är jag helt ute och cyklar? Fungerar bra hittills.
ArrayList måste väl vara det ultimata för att spara objektinstanser av Item? koden blev hur som helst mycket snyggare, enklare osv.
ViktorMedlem sedan aug. 20021 710 inlägg
Du kan ju spara din ArrayList som värdet i din HashTable,
Iterator iter=itemsInRoom.keySet().iterator();
List list=null;
String room=null;
while(iter.hasNext())
{
room=(String)iter.next();
list=(ArrayList)itemsInRoom.get(room);
System.out.println("I rum "+room+" finns,");
for(int i=0;i<list.size();i++)
System.out.println(list.get(i));
}
/Viktor