• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java, dodawanie elementów do listy list

0 głosów
2,281 wizyt
pytanie zadane 13 stycznia 2018 w Java przez Kasia Nowicjusz (230 p.)
edycja 13 stycznia 2018 przez Kasia

Witam, posiadam listę list obiektów, niestety mam pewien problem z dodawaniem elementów do poszczególnych list. Za każdym razem obiekt zostaje dodany do każdej z istniejących list.

część funkcji dodającej elementy:

 for(int i=0; i<lista_punktow.size(); i++){
         lista_naj.get(najblizszy(lista_punktow.get(i))).add(lista_punktow.get(i));
     }

Funkcja najbliższy zwraca indeks :

 public int najblizszy(Punkt pkt){
     int indeks=0;
     double min=odleglosc(pkt, lista_centroidow.get(0)), odl=0.0;
     
     for(int j=0; j<lista_centroidow.size(); j++){
         odl=odleglosc(pkt, lista_centroidow.get(j));
         if(odl<=min){
              min=odl;
              indeks=j;
         }
     }
     return indeks;
 }

wiecie może, z czego wynika błąd?

z góry dzięki za pomoc !!

komentarz 14 stycznia 2018 przez mbabane Szeryf (79,260 p.)

Postaraj się napisać do czego ma to wszystko służyć (tzn. jaki ma być efekt końcowy) oraz czym są, w kontekście zadania, te listy i typy jakie przyjmują, bo jak na razie z Twojego opisu wynika, że wszystko jest ok:

 Za każdym razem obiekt zostaje dodany do każdej z istniejących list.

komentarz 14 stycznia 2018 przez Kasia Nowicjusz (230 p.)
To jest fragment algorytmu centroidów. Lista punktów/centroidów przechowuje obiekty klasy punkt. Obliczam odległości od każdego centroidu, dla każdego punktu i wpisuje dany punkt do listy_naj (najbliższych) pod indeksem centroidu, od którego leży najbliżej.

A problem dokładniej. Listy są wyzerowane na początku. I w sumie kod też wydaje się poprawny. A jednak po wywołaniu tych funkcji przy sprawdzeniu list, okazuje się, że punkty nie są podzielone. Tylko identycznie wpisane do obydwu(np) list.
komentarz 14 stycznia 2018 przez mbabane Szeryf (79,260 p.)
Pokaz przykładowy wynik działania.
komentarz 14 stycznia 2018 przez Kasia Nowicjusz (230 p.)

Już to rozwiązałam, przypadkiem dodawałam ta samą listę przy tworzeniu listy list, bez jej inicjalizowania. Siadłam na świeżo i błąd znalazł się w 2 minuty wink Dzięki bardzo

komentarz 14 stycznia 2018 przez mbabane Szeryf (79,260 p.)
No tak, znam to zjawisko, że jak nie idzie to jeszcze bardziej zaciska się zęby i próbuje się, całkowicie bez skutecznie, rozwiązać jakiś problem. A gdy się od tego odejdzie i powróci za x czasu to normalnie 10 sec i problem znika.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 2,285 wizyt
0 głosów
1 odpowiedź 484 wizyt
pytanie zadane 24 marca 2021 w Java przez niezalogowany
0 głosów
1 odpowiedź 429 wizyt

93,742 zapytań

142,680 odpowiedzi

323,299 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...