Jest arraylistą arytmistów liczb całkowitych. Wciąż próbuję skompilować problem, ale wiersz poleceń mówi „niekompatybilne typy”. Wiem na pewno, że wszystkie wywołania funkcji są poprawne (np. .GetStart (), .getEnd () itd. - napisałem te klasy i dokładnie je przetestowałem.) Btw, „permOfEdges” to: ArrayList <ArrayList <Edge>> (Edge jest klasą, którą napisałem).
Ponieważ to jest: visit.get (-). get (-), mówi, że drugi .get (-) powinien być zmienną, a nie wartością. Jestem zdezorientowany, co to znaczy, ponieważ jest arraylistą arraylistów.
Kod arraylist arraylists:
ArrayList<ArrayList<Integer>> visited = new ArrayList<ArrayList<Integer>>();
for(int i = 1; i < permOfEdges.size(); i++)
{
for(int j = 0; j < permOfEdges.get(i).size(); j++)
{
visited.get(i).get(j) = 0; // this is to initialize the entire thing to only contain zeros
}
}
for(int i = 1; i < permOfEdges.size(); i++)
{
for(Edge point: permOfEdges.get(i))
{
if((visited.get(point.getEnd()).get(point.getStart()) == 0) && visited.get(point.getStart().get(point.getEnd()) == 0)) // means NOT visited yet
{
writer.println(point.getStart() + " " + point.getEnd() + " " + point.getDistance() + " " + point.getPrice());
}
visited.get(point.getStart()).get(point.getEnd()) = 1;
visited.get(point.getEnd()).get(point.getStart()) = 1;
}
}
writer.close();
Błąd brzmi: 1. nieoczekiwane typy: visited.get (i) .get * (j) = 0 (* = gdzie ^ było w wierszu polecenia) wymagane: zmienne znaleziono: wartość
- int nie można wyrejestrować if ((visited.get (point.getEnd ()). get * (point.getStart ()) == 0) && ...)
- i 4. oba te błędy są takie same, jak pierwszy, z wyjątkiem tego, że skupia się na dwóch liniach, w których przypiszem visit.get (..). get (..) = 1
Każda pomoc będzie doceniona! Dziękuję Ci!
Odpowiedzi:
1 dla odpowiedzi № 1Nie można przypisać do wyniku wywołania metody. To jest źle:
visited.get(i).get(j) = 1;
a ty prawdopodobnie miałeś na myśli:
visited.get(i).set(j, 1);