Frage:
Wie kann ich in meinem Code den Cannot resolve Symbol Fehler vermeiden? Hätte gedacht, dass es sich um ein Problem mit dem Datentyp handelt, aber der Datentyp ist korrekt.
Zu meinem Code: Ich möchte einen Array erstellen in dem Listen gespeichert sind. Die Array indexe sollen Knoten aus einem Graphen symbolisieren und in den Listeneinträgen sollen jeweils alle Kanten gespeichert sein, deren Ausgangsknoten der Knoten mit dem jeweiligen Index sein. Beispiel es gibt den Knoten 0 und 1 und die Kante (0,1). Dann soll in dem Array an Index 0 eine Liste sein, mit dem Element (0,1). Hierzu habe ich eine Klasse Edge erstellt, die die Kanten abbildet. Die Listen sind alle vom Typ Edge.
Der Fehler ist in der Zeile graph[i].get(j).from.equals(V)|| graph[i].get(j).to.equals(V) und zwar bei dem from und to. Verstehe nicht wieso da ein fehler kommt, weil graph[i].get(j) liefert den Datentyp Edge zurück und mit from bzw. to müsste man dann auf die Attribute zugreifen können. Dachte ich zumindest :)
Code:
public ArrayList<Edge> getIncidentEdges(int v) {
Integer V = v; /* cast um equals Methode zu nutzen, da Edge generisch ist */
ArrayList <Edge> incidentEdges = new ArrayList<>();
for (int i = 0; i < graph.length; i++) {
int j =0;
while(j < graph[i].size()) {
if (graph[i].get(j).from.equals(V)|| graph[i].get(j).to.equals(V)) {
incidentEdges.add((Edge) graph[i].get(j));
}
j++;
}
}
return incidentEdges;
}