Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe eine Klasse "Spiel" und möchte von dort aus dynamisch Instanzen der Klasse "Spieler" erzeugen. Also abhängig davon, wieviele Spieler mitspielen.
Erst habe ich dies mit einer HashMap gelöst um mit dem Schlüssel auf die Instanz zugreifen zu können, aber es muss doch auch möglich sein, diese Instanzen dynamisch zu erzeugen und trotzdem anschließend mit spieler1, spieler2 usw. drauf zugreifen zu können.
Ich wäre euch super dankbar, wenn mir jemand weiterhelfen könnte...
Meistens sollte man in solchen Fällen andersrum denken - die Spielerobjekte sollten selbsterklärend sein, alle Informationen des Spielers sind dort drin, d.h. es sollte schlichtweg unnötig sein von außen zu sagen, welcher der vorhandenen Objekte tatsächlich Spieler1 oder 3 ist, das kann man ja anhand der Attribute der jeweiligen Objekte ermitteln...
eine Hashmap find ich irgendwie bei dem Szenario nicht so geeignet - eine Liste, wie ArrayList bei der Verwendung von Threads und nebenläufig spielenden Spielern evtl. auch eine synchronisierte Variante einer Collection ist als Datenspeicher da geeigneter.
Zum Durchwandern der einzelnen Spielerobjekte eignen sich die Iterator-Objekte, die man aus den Listen erzeugen kann.
Alternativ bei einer festen und eher kleinen Anzahl von Spielern, eignen sich auch Arrays als Speicher.. da kann man das durchwandern einfacher noch mit while oder for schleifen erledigen - der zugriff auf einzelne dynamisch erzeugte Objekte geht dann auch sehr simpel über die Indizes des Arrays...
Auch dort empfiehlt es sich dann eine add bzw. remove Methode zu machen, um Spielerobjekte zu erstellen und dem Array hinzuzufügen bzw. wieder zu entfernen.
allerdings hört es sich bei dir so an, als ob du beim Umgang mit Threads etc. zu einer ArrayList greifen solltest, dabei sind die Methoden unsynchronisiert.
In solchen Fällen ist dann Vector noch ganz brauchbar.
In welchen Fällen ist Vector brauchbar? ... ich würde Vector wegen der Synchronisierung gar nicht mehr nutzen - lieber nen Wrapper für die Liste schreiben, der Zugriffsmethoden wie add und remove synchronized oder aber die synchronizedLists-Methode von Collections nutzen...