• 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

VPS Starter Arubacloud
0 głosów
1,618 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,280 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,280 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,280 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,014 wizyt
0 głosów
1 odpowiedź 218 wizyt
pytanie zadane 24 marca 2021 w Java przez niezalogowany
0 głosów
1 odpowiedź 219 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...