Wyszukiwanie elementów

0

Nie jestem jeszcze dobrze obeznany w kolekcjach, dlatego pytam czy istnieje jakiś łatwy sposób do wyszukiwania pierwszego wystąpienia elementu (którego jeden z atrybutów jest mniejszy równy zadanej wartości).
Mam taką kolekcję:
LinkedList<Element> lista;

Element:
double wartosc1;
double wartosc2;

Daną listę mam posortowaną (użyłem interfejsu Comparator) i mam posortowane elementy według atrybutu wartosc2; Teraz chce wyszukać pierwszy element, którego atrybut wartość1 jest większy równy od dowolnej stałej c.

0

Najprościej to chyba przelecieć po liście:

Element szukany = null;
Iterator<Element> iterator = lista.iterator();
while (iterator.hasNext() && (szukany = iterator.next()).wartosc1 < c);
0

To jest lista, więc szukając danego elementu masz O(n), i nic na to nie poradzisz, chyba, że dodatkowo będziesz przechowywał elementy w tablicy. Dzięki temu możesz ograniczyć czas szukania do log2(n) (dostęp do elementu po indeksie i posortowana tablica). Oczywiście to może też być jakieś drzewo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1