ich hab ein problem in java...
ich muss als übung ne objektverwaltung coden... naja, egal, also objekte sind soweit gemacht... ich erstell also meine objekte und die sind uach da etc.
jetzt das problem.
ich soll ne suche coden. aber das krieg ich net gebacken... meine objekte sehen so aus:
Line b = new Line (1, 13,14,15,16,17,18, "Dieter");
die haben alle ne durchlaufende ID nummerung, aber ich kann die objekte einfach nicht der reihe nach durchlaufen. also die namen der objekte sind unterschiedlich, die heißen a, b, c, ef, jk, und so weiter.
wie kann ich die alle der reihe nach durchlaufen? meine bisherige idee ist, nen treeset, ne liste oder arraylist oder sowas zu machen, und dann immer im array die objektnamen abzulegen, wenn ein objekt angelegt wurde und dann immer die liste zu durchlaufen, da die namen abzurufen und dann das objekt checken... nur das ist soviel aufwand oO
//Edit.
ich habs glaub ich rausgefunden, wie es geht. ich hab mir jetzt nen treeset gemacht und meine objekte darin abgelegt... nur hab ihc ein problem... wenn ich nur 1 objekt in den treeset gebe, funktioniert alles... geb ich 2 objekte rein, stürzt alles ab... leider ohne aussagekräftige fehlermeldung außer "fatal exception" oder sowat...
hierdrinne stürzt er ab. kommentiert man das 2. objekt aus, was hinzugefügt wird bei baum.add, funktioniert alles.
import java.util.Iterator; import java.util.TreeSet; public class Main { public static void main (String args[]){ TreeSet baum = new TreeSet(); //Neuer Punkt (ID, x, y, z, Name) Point a = new Point(1, 12,12,12, "Hans"); baum.add(a); Point b = new Point(4, 11,11,11, "Blubb"); baum.add(b); } }
das ist der objekt code, ka ob der wichtig ist^^
public class Point extends Objekt { private int x; private int y; private int z; private int Punkt; private String Name; public Point(int id, int x_coord, int y_coord, int z_coord, String Name) { super(id); this.x = x_coord; this.y = y_coord; this.z = z_coord; this.Name = Name; } public Point(int id, int x_coord, int y_coord,int z_coord, int Punkt) { super(id); this.x = x_coord; this.y = y_coord; this.z = z_coord; this.Punkt = Punkt; } public String toString() { String tmp; tmp = ("Der Punkt mit der ID " + id + " liegt bei " + x + " " + y + " " + z + "." + " Sein Name: " +Name ); if (Punkt == 1) {tmp = x + " " + y + " " + z;}; if (Punkt == 2) {tmp = "Ein Linienpunkt " + "liegt bei " + x + " " + y + " " + z + ".";}; return tmp; } public void getPoint_x() { System.out.println("Die x-Koordinate des Punktes ist" + x); } }
Das einzgie was der Compiter sagt (neben dem absturzt das JVM:
java.lang.ClassCastException
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at Main.main(Main.java:16)
Exception in thread "main"
Mir fällt da grad ein... kann es sein, dass mir das ding abesemmelt, weil ich kein comperator interface hab? und der sich todsortiert beim treeset?
danke im vorraus,
lod14
Dieser Beitrag wurde von LoD14 bearbeitet: 24. Oktober 2007 - 23:12