L
lehmi
Gast
Hallo,
ich habe eine kleines Problem mit einem Array aus Objekten.
Hier erstmal die Klasse, wo die Exception auftritt
Zeile this.nodeArray= null; // Knotenliste "löschen"
Ist sicher unnötig, aber wenn ich das auskommentiere dann tritt der Fehler auch in addNode(Node node) auf bei this.nodeArray[this.nodeCount]= node;
Der gleiche Fehler kommt auch beim Zugriff auf adjmatrix.... ist aber bestimmt das gleiche Problem.
Hier der Teil aus dem Hauptprogramm
graph.addNode(node0); Hier wirft er wieder eine Exception aus
Ich dachte, es reicht den Array zu initialisieren, aber ich habe wohl irgendwas falsch verstanden..
Kann mir jemand vielleicht einen Tip geben ?
ich habe eine kleines Problem mit einem Array aus Objekten.
Hier erstmal die Klasse, wo die Exception auftritt
Zeile this.nodeArray= null; // Knotenliste "löschen"
Ist sicher unnötig, aber wenn ich das auskommentiere dann tritt der Fehler auch in addNode(Node node) auf bei this.nodeArray[this.nodeCount]= node;
Der gleiche Fehler kommt auch beim Zugriff auf adjmatrix.... ist aber bestimmt das gleiche Problem.
Code:
class Graph {
//Hier benötigte Attribute der Klasse einfügen (private!).
private int maxNodes=0;
private int nodeCount=0;
private Edge[][] adjmatrix;
private Node[] nodeArray;
/* Initialisiert den Graph fuer maximal maxNodes Knoten. */
Graph(int maxNodes) {
//Hier implementieren.
this.maxNodes=maxNodes;
Edge[][] adjmatrix = new Edge[maxNodes][maxNodes]; // neue Adjazenzmatrix anlegen
Node[] nodeArray = new Node[maxNodes]; // neuer Array für die Knoten
for (int i=0; i< maxNodes; i++) {
this.nodeArray[i]= null; // Knotenliste "löschen" <---------------------hier
for (int j=0; j<maxNodes; j++) {
this.adjmatrix[i][j] = new Edge(99999999); //Adjanzenzmatrix löschen <---------------------auch hier
} // for j
} //for i
} //Graph
/* Fuegt den Knoten node in den Graphen ein. */
void addNode(Node node) {
if (this.nodeCount<maxNodes) { // mehr Knoten als initialisiert ?
this.nodeArray[this.nodeCount]= node; <-----------------hier
Edge e = new Edge(0); // Nodes haben sich selbst als Nachbarn
this.adjmatrix[this.nodeCount][this.nodeCount]= e; <-------------------auch hier
this.nodeCount++;
} //if
} //addnode
Hier der Teil aus dem Hauptprogramm
Code:
Graph graph = new Graph(24);
Node node0 = new Node("Hurra");
graph.addNode(node0);
graph.addNode(node0); Hier wirft er wieder eine Exception aus
Code:
class Node implements Comparable {
/* Der Name dieses Knotens. */
String name;
/*
* Dieses Attribut wird von der Klasse Graph verwaltet. Bitte nicht von Hand
* aendern.
*/
int index = -1;
/* Initialisiert den Knoten mit dem gegebenen Namen. */
Node(String n) {
this.name = n;
}
/* Vergleicht den aktuellen Knoten mit O. */
public int compareTo(Object o) {
return this.name.compareTo(((Node) o).name);
}
public String toString() {
return "<Node: " + this.name + ">";
}
}
Ich dachte, es reicht den Array zu initialisieren, aber ich habe wohl irgendwas falsch verstanden..
Kann mir jemand vielleicht einen Tip geben ?