ArrayList<Integer> map_x = new ArrayList<Integer&gt

Status
Nicht offen für weitere Antworten.

Memphis

Aktives Mitglied
Hallo meine Frage. Zur Zeit erstelle ich 3 Listen
ArrayList<Integer> map_x = new ArrayList<Integer>();
ArrayList<Integer> map_y = new ArrayList<Integer>();
ArrayList<Integer> map_typ = new ArrayList<Integer>();

diese 3 gehören zusammen und repräsentieren
die eigenschaften x y und halt dem Typ.
Nun wollte ich fragen wie ich das in eine packen kann, da ich wie es jetzt ist erst immer die 3 Listen durchgehen muss um z.B. festzustellen ob Daten vom Typ x = 1 y = 2 typ =10 vorhanden sind. Nun wollte ich fragen ob dies auch in eine legen kann?

Vielen dank für eure Antworten
 

Illuvatar

Top Contributor
Ich weiß net ob ich dich richtig versteh...
aber schreib doch eine Klasse, das die Eigenschaften x, y und typ kapselt und lege eine Liste mit diesen Objekten an.
 
B

bygones

Gast
ja - hier ist wohl eher OOP denken angebracht...

d.h. eine Klasse schreiben usw...
 

Memphis

Aktives Mitglied
Mit OOP habe ich bisher noch net so viel gemacht. Hättest du vll. einen kleinen weiteren Tipp wie ich das anstellen könnte?

Memphis
 
B

bygones

Gast
Code:
public class MyPoints {
  private int x;
  private int y;
  private int type;

  // konstruktor & Methoden
}
dann eine List<MyPoints> nehmen
 

byte

Top Contributor
Am schönsten wäre es sicherlich, wie oben beschrieben, eine Klasse mit drei Feldern zu machen, die die drei Eigenschaften speichert. Diese kannst Du dann einer Liste hinzufügen.

Andere Möglichkeit: Du erzeugst eine Liste und fügst dieser weitere Listen, bestehen aus drei Elementen (deine Eigenschaften), hinzu. Also in etwa so:

Code:
ArrayList<List<Integer>> list = new ArrayList<List<Integer>>();
ArrayList<Integer> elem = new ArrayList<Integer>();
Integer x = ...;
Integer y = ...;
Integer type = ...;
elem.add(x);
elem.add(y);
elem.add(type);
list.add(elem);
 

Memphis

Aktives Mitglied
Ich weis das ich vll. ein wenig stresse, aber noch eine Frage
Ich habe beides mal ausprobiert das untere klappte anfangs schon, jedoch als ich es dann in meine Anwendung einbauen wollte gab es Probleme mit awt. Deswegen hab ich mir das oben nocheinmal angeschaut was mir von byto auch als besser empfohlen wurde. Folgendes Problem ist aufgetreten. Wie kann ich Daten hinzufügen?
Code:
  class MyPoints {
  private int x;
  private int y;
  private int typ;
  }
  ArrayList<MyPoints>  map = new ArrayList<MyPoints>();
  map.add( new MyPoints(() );
  System.out.println(map);

Nur wie kann ich jetzt einen reinpacken map.add(new MyPoints((10,10,10)); klappt z.b. net :(

Danke für eure Mühe, mfg Memphis
 
B

bygones

Gast
hui - nochmal in ruhe anfänger bücher lesen :)

du brauchst natürlich noch einen konstruktor und methoden, sonst hilft dir die klasse nix....

Code:
public class MyPoints { 
  private int x; 
  private int y; 
  private int type; 

  public MyPoints(int x, int y, int t) {
    this.x = x;
this. y = y;
this.type = t;
 }

 // get und set methoden
  }
 

Memphis

Aktives Mitglied
Ich schonwieder :(

Code:
  class MyPoints {
   private int x;
   private int y;
   private int type;

    MyPoints(int x, int y, int t) {
    this.x = x;
    this. y = y;
    this.type = t;
    }
   }
   ArrayList<MyPoints>  map = new ArrayList<MyPoints>();


    map.add(new MyPoints(10,10,10));
    map.add(new MyPoints(10,10,10));

    System.out.println(map);

Beim Ausgeben gibt er mir dann folgendes aus :

[demo$1MyPoints@82ba41, demo$1MyPoints@923e30]

jetzt müsste ich nur noch wissen wie man den Teil 82ba41 wieder in drei Ints umwandelt ich denke mal der Teil davor sind die Klassen. MFG Memphis
 
B

Beni

Gast
Du schreibst dir 3 Methoden in der Form...
Code:
public class MyPoint{
  private int x;
  ...

  public int getX(){
    return x;
  }
}
... und kannst später "myPoint.getX()" verwenden um an eine Variablen ranzukommen.

Damit die Ausgabe über System.out.println besser aussieht, musst du "toString" von "MyPoint" überschreiben (du kannst da irgendeinen beliebigen Text zurückgeben).
 
B

bygones

Gast
Memphis hat gesagt.:
mmm irgendwie klappt das von Beni net :(
von Beni klappt alles...

poste vollständigen Code und schau dir in Ruhe nochmal Bücher und Tutorials an... Klassen usw. sind basics
 

Memphis

Aktives Mitglied
Code:
import java.util.*;

public class as {

 
  }

}


Wenn ich es weiter nach unten lege gehts auch net wegen dem statischen.

edit deathbyaclown: code tags eingefügt
 
B

bygones

Gast
die Syntax ist leider völlig falsch.

du hast eine Klassendefinition in einer Methode....

schreib MyPoints als public class in ein eigenes file....

Code:
public class MyPoints {
 // mypoints sachen hier rein
}
und in andere Datei
Code:
public class Main {
 public static void main(String[] args) {
   List<MyPoints> liste = new ArrayList<MyPoints>();
   liste.add(new MyPoints(10,10,10));
 }
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben