2d array of hashmap

Status
Niet open voor verdere reacties.

grizzlybeer

Gebruiker
Lid geworden
30 jan 2007
Berichten
58
Ik ben bezig met een 2d spel. Het speelveld zijn eigenlijk allemaal vakjes. Op iedervakje kan iets taan op het speelveld. Zeg even zo'n vak kan leeg zijn of er staat een doos op of een kat of een muis. Nu wil ik in java in de klasse positie iets maken zodat je kan zien wat je buren zijn. Dus ik sta op een bepaald vakje en ik wil kunnen zien wat er op de vakken naast me staat.
Eerst had ik een array met velden aangemaakt, maar nu zei men dat ik het met hashmap moest doen.
weet iemand hoe ik dat dan moet doen. Hoe kan ik met hashmap zien wat er in de vakken naast me is?
 
Je kunt zoiets prima met een array doen. Ik zie niet helemaal waarom je een hashMAP zou moeten gebruiken, omdat die keys naar values mapt, zoals de naam al zegt. Een Arraylist is een andere mogelijkheid die je zou kunnen gebruiken.

Het voordeel van een van de Collection klassen van Java is dat ze dynamisch qua grootte zijn. Je kunt er dus altijd een element bij stoppen. Een array heeft een vaste grootte. Wil je er meer in stoppen, dan zul je een nieuwe, grotere array moeten maken, alle waarden moeten kopieren en vervolgens de nieuwe waarde toevoegen. Als jouw speelveld tijdens het hele spel een vast formaat heeft kun je dus prima een array gebruiken.

In de array kun je dan objecten stoppen (bijvoorbeeld een doos, kat of muis). Stel, dit is een array[3][3], en je wilt de buren van vakje array[1][1] weten, dan zitten die op array[0][1], array[2][1], array[1][0] en array[1][2]. De diagonalen zijn dan niet meegenomen, maar dit kun je zelf wel afleiden als je het nodig hebt. Bij een 2d array heb je dus eenvoudig rijen en kolommen en is het bepalen van je buren vrij makkelijk te doen.
 
Inderdaad. Het is wel handig als je in Java programmeert om de api een beetje te kennen. Vooral de collection klassen (waar de HashMap ook onder valt) zijn vaak erg handig.
 
mail me

Saurie zou je me misschien willen mailen, want ik kan geen bericht naar je sturen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan