URL: https://www.overclockers.at/coding-stuff/java-array-zwei-variablen-und-index_245568/page_1 - zur Vollversion wechseln!
gibt es keinen einfachen weg ohne maps (welche keinen index haben...) 2 werte in einem array mit einem index zu speichern?
oder nur mit objekt-datenstruktur?
das sollten zwei unabhängige werte sein zB 55 und 78. diese beiden dann auf index 0 eines arrays. das nächste dann auf index 1 usw. auf das array sollte man dann nur neue werte pushen können.
Wenns der gleiche Datentyp ist kannst ein zweidimensionales Array nutzen
int[][] daten = new int[1212][2];
und dann eben daten[12][0] = 55 und daten[12][1] = 78
Was spricht gegen deine Vorschlaege?
Gibt einige Möglichkeiten, je nach Datentyp. Um nur einige zu nennen:
- zweidim. arrays
- array aus einem abstraktem datentyp
- array aus tupeln
Statt arrays könntest auch ArrayList nehmen, falls die größe variabel ist. Hashmaps würde ich nicht "einfach so" nutzen, die haben schon einen speziellen Sinn
wenn die größe der zahl beschränkt ist (z.b. 16bit), kann man auch schöne sachen machen, wie in einer 32bit integer zahl zwei 16 bit integer zu speichern. zusammenbauen bzw zerlegen kann man das mit einfachen shifts und addition.
ist afaik die übliche vorgangsweise bei µ-controller programmierung, um mehrere daten kompakt/speichereffizient zu verwenden.
aber da es hier um java geht, ist das unnötig und nur ein hinweis.
würds auch mit einem zweidimensionalem array machen.
die schreibarbeit
dann halt so. ich hätte gerne array key=> value gehabt ;(
key -> value ist ein Hashmapszenario. Aber für was benötigst du dann einen index?
habs so gelöst nun.Code: JAVAArrayList<Coord> SnakeList = new ArrayList<Coord>(); Coord m1 = new Coord(); m1.setX(8); // check against array with mices to delete existing SnakeList.add(m1); System.out.println(SnakeList.get(0).getX()); // TODO code application logic here -------------------------------------------------------------------- class Coord { private int x; private int y; public int getX(){ return this.x; } public boolean setX(int x){ this.x = x; return true; } }
für XY koordinaten hab ich oft auch einfache arrays genommen und einfach immer in 2er schritten abgefragt.
also 0/1 ist punkt 1 - 2/3 ist punkt 2 usw.
Wie wärs mit Points, wenns um Koordinaten geht? Brauchst keinen abstrakten Datentyp dafür, da es für genau den Fall bereits einen Datentyp gibt
Oder hast du ein Spielbrett und musst überprüfen, ob sich an Stelle x/y eine Schlange befindet?
Btw: set-Methoden sind überlicherweise void, returnen also nichts. Das ergibt bei dir nicht sonderlich viel Sinn
ja, spielbrett und schauen ob sich da etwas befindet.
mit einem 2d array (1920*1080) wird das sehr groß und benötigt so viel ram (?), selbst wenn es leer ist.
Quatsch, nen 2d array für nen Spielbrett benötigt nicht sonderlich viel. Und für ein solches Szenario bietet sich sowas gut an. Gerade für einfache Spielbrett-Geschichten und "Anfänger" ist es der typische Lösungsansatz.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025