Czy Java LinkedList jest zoptymalizowana, aby uzyskać (indeks) w razie potrzeby odwrotność?
Pracowałem nad kilkoma sposobami optymalizacji LinkedList. Czy ktoś wie, czy domyślnie podwójnie połączona klasa LinkedList Java jest zoptymalizowanaget()
operacje w odwrotnej kolejności? Na przykład:
// Some LinkedList list that exists with n elements;
int half = list.size() / 2;
list.get(half + 1);
Czy wezwanie dolist.get(half + 1)
zoptymalizować wyszukiwanie i cofnąć się, ponieważ jest to lista podwójnie połączona? Bardziej sensowne byłoby wykonanie wyszukiwania od końca i przejście do środka, jeśli wiesz, że element znajduje się w drugiej połowie listy.
Wiem, używającget(index)
jestO(n)
czas i że powinieneś użyć iteratora podczas przechodzenia przez LinkedList, ale jestem po prostu ciekawy.