"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Java - array zwei variablen und index

11Fire01 22.02.2016 - 13:29 2138 12
Posts

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
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.

XeroXs

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10331
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

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Was spricht gegen deine Vorschlaege?

Denne

Here to stay
Avatar
Registered: Jan 2005
Location: Germany
Posts: 2801
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 :)

Blaues U-boot

blupp, blupp
Avatar
Registered: Aug 2005
Location: Graz
Posts: 1541
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.
Bearbeitet von Blaues U-boot am 22.02.2016, 14:13

InfiX

she/her
Avatar
Registered: Mar 2002
Location: Graz
Posts: 14195
würds auch mit einem zweidimensionalem array machen.

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
die schreibarbeit :D

dann halt so. ich hätte gerne array key=> value gehabt ;(

Denne

Here to stay
Avatar
Registered: Jan 2005
Location: Germany
Posts: 2801
key -> value ist ein Hashmapszenario. Aber für was benötigst du dann einen index?

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
Code: JAVA
ArrayList<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;
    }

}
habs so gelöst nun.

für koordinaten setzen mit jeweils x und y. so viel aufwand dafür :eek:

InfiX

she/her
Avatar
Registered: Mar 2002
Location: Graz
Posts: 14195
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.

Denne

Here to stay
Avatar
Registered: Jan 2005
Location: Germany
Posts: 2801
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 :)
Bearbeitet von Denne am 22.02.2016, 14:47

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
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.
Bearbeitet von 11Fire01 am 22.02.2016, 14:50

Denne

Here to stay
Avatar
Registered: Jan 2005
Location: Germany
Posts: 2801
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.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz