Колекції корисні для зберігання даних. У звичайному масиві розмір масиву фіксується. Іноді потрібно створити масиви, які можуть зростати в міру необхідності. Мови програмування, такі як Java, мають колекції. Це рамка з набором класів та інтерфейсів. Він служить контейнером для групи елементів. Колекції дозволяють зберігати, оновлювати, вибирати набір елементів. Це допомагає працювати зі структурами даних, такими як списки, набори, дерева та карти. Список є інтерфейсом фреймворку Collection. ArrayList і LinkedList - два класи в рамках колекцій. Вони реалізують інтерфейс колекції та інтерфейс списку. У цій статті йдеться про різницю між ArrayList та LinkedList. ArrayList - клас, який розширює AbstractList і реалізує інтерфейс List, який внутрішньо використовує динамічний масив для зберігання елементів даних. LinkedList - це клас, який розширює AbstractSequentialList та реалізує інтерфейси List, Deque та Queue, які внутрішньо використовують подвійно пов'язаний список для зберігання елементів даних. Це те саме ключова різниця між ArrayList і LinkedList.
1. Огляд та ключові відмінності
2. Що таке ArrayList
3. Що таке LinkedList
4. Подібність між ArrayList та LinkedList
5. Порівняльне порівняння - ArrayList vs LinkedList у табличній формі
6. Підсумок
Клас ArrayList використовується для створення динамічних масивів. На відміну від звичайного масиву, розмір динамічного масиву не фіксований. Об'єкту, створеному за допомогою класу ArrayList, дозволяється зберігати набір елементів у списку. Ємність збільшується автоматично, тому програміст може додавати елементи до списку. Клас ArrayList розширює клас AbstractList, який реалізує інтерфейс List. Тому ArrayList може використовувати методи інтерфейсу List. Для доступу до елементів використовується метод get (). Метод add () може використовуватися для додавання елементів до списку. Метод delete () використовується для видалення елемента зі списку. Дивіться програму нижче.
Малюнок 01: Приклад ArrayList
Відповідно до вищезгаданої програми створюється об’єкт ArrayList. Використовуючи метод додавання, елементи можна додавати динамічно. Елементи "A", "B", "C", "D" та "E" додаються за допомогою методу add. Метод видалення використовується для видалення елемента зі списку. При переході 4 до методу видалення літера із 4-го індексу, який є "E", видаляється зі списку. Під час повторення списку за допомогою циклу for для друку букви A, B, C і D надрукуються.
Подібно до ArrayList, LinkedList використовується для динамічного зберігання елементів даних. Об'єкту, створеному за допомогою класу LinkedList, дозволяється зберігати набір елементів у списку. Ємність збільшується автоматично, тому програміст може додавати елементи до списку. Він внутрішньо використовує подвійно пов'язаний список для зберігання даних. У подвійному зв’язку списку дані зберігаються у вигляді вузлів. Кожен вузол містить два посилання. Перше посилання вказує на попередній вузол. Наступне посилання вказує на наступний вузол у послідовності.
Клас LinkedList розширює клас AbstractSequencesList та реалізує інтерфейс List. Тому методи інтерфейсу списку можуть використовуватися LinkedList. Метод get () може використовуватися для доступу до елементів списку. Метод add () може використовуватися для додавання елементів до списку. Метод delete () використовується для видалення елемента зі списку. Дивіться програму нижче.
Малюнок 02: Приклад із LinkedList
Відповідно до вищезгаданої програми створюється об’єкт LinkedList. Використовуючи метод додавання, елементи можна додавати динамічно. Елементи "A", "B", "C", "D" та "E" додаються за допомогою методу add. Метод видалення використовується для видалення елемента зі списку. При переході 4 до методу видалення літера із четвертого індексу, яка є "E", видаляється зі списку. Під час ітерації за допомогою циклу for, друкуються літери A, B, C і D.
ArrayList vs LinkedList | |
ArrayList - клас, який розширює AbstractList та реалізує інтерфейс List, який внутрішньо використовує динамічний масив для зберігання елементів даних. | LinkedList - клас, який розширює AbstractSequentialList та реалізує інтерфейси List, Deque, Queue, який внутрішньо використовує подвійно пов'язаний список для зберігання елементів даних. |
Доступ до елементів | |
Доступ до елементів ArrayList швидше, ніж до LinkedList. | Доступ до елементів LinkedList повільніше, ніж до ArrayList. |
Маніпулювання елементами | |
Маніпулювання елементами ArrayList відбувається повільніше, ніж LinkedList. | Маніпуляція елементами LinkedList швидше, ніж з ArrayList. |
Поведінка | |
ArrayList виконує функції списку. | LinkedList виконує функції списку та черги. |
Рамка колекції дозволяє працювати зі структурами даних, такими як списки, дерева, карти та набори. Список є інтерфейсом рамки колекції. У цій статті обговорювалася різниця між ArrayList та LinkedList. ArrayList - клас, який розширює AbstractList і реалізує інтерфейс List, який внутрішньо використовує динамічний масив для зберігання елементів даних. LinkedList - клас, який розширює AbstractSequentialList та реалізує інтерфейси List, Deque, Queue, який внутрішньо використовує подвійно пов'язаний список для зберігання елементів даних. У цьому полягає різниця між ArrayList і LinkedList.
1.Вступ до пов'язаного списку | Посібник зі структури даних | Навчальна ніч. Доступний тут
2. "LinkedList на Яві - javatpoint.", Точка, доступна тут
3. "Клас Java ArrayList - javatpoint." Точка, доступна тут