Ponieważ ArrayList implementuje interfejs RandomAcess, znajduje element w dowolnym indeksie w tym samym czasie. Czy używa tego samego interfejsu podczas przemierzania. A jeśli tak, to czy jest szybsze niż przechodzenie przez tablicę?
2 odpowiedzi
Czy używa tego samego interfejsu podczas przemierzania
O jakim interfejsie mówisz? List<T>
? No tak. LinkedList<T>
również implementuje List<T>
, ale nie RandomAccess
.
A jeśli tak, to jest szybsze niż przechodzenie przez tablicę
ArrayList
używa tablicy pod maską, więc nie może być szybsza niż tablica.
ArrayList
zachowuje się jak tablica.
Zasadniczo jest to wrapper class
dla tablicy, która pozwala na:
- Rozwijaj się dynamicznie
- Pozwól na zaznaczanie i usuwanie elementów.
- Uzyskaj dostęp do jego elementów tak jak do tablicy.
- Oraz inne dodatkowe funkcje, takie jak wyszukiwanie elementów.
Z wyjątkiem pozycji 3, wszystkie są zaimplementowane tak wydajnie, jak to tylko możliwe, ale nadal zwiększają koszty, tak jak by to było, gdybyś musiał zapewnić tę możliwość przy użyciu zwykłych tablic.
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].
ArrayList
wewnętrznie używa tablicy...).