LinkedList против ArrayList в Java: основные отличия



Эта статья LinkedList vs ArrayList даст вам правильное сравнение списков, реализующих интерфейс списка.

Список в Java - это субинтерфейс это дает оптимальные решения с такими концепциями, как позиционный доступ, итерация и так далее. В этой статье я рассмотрю основные различия между интерфейсом списка LinkedList и ArrayList в Java.

Ниже приведены темы, затронутые в этой статье:





Давайте начнем!

Что такое LinkedList?

После массивы , вторая по популярности структура данных определенно . Связанный список - это линейная структура данных, состоящая изцепочка узлов, в которой каждый узел содержит значение иуказательк следующему узлу в цепочке.Кроме того, тПоследняя ссылка в связанном списке указывает на нуль, указывая на конец цепочки.Элемент связного списка называется узел .Первый узел в списке называется голова .Последний узел называется хвостик .



Позвольте мне привести вам простой пример: представьте себе цепочку скрепок, соединенных вместе. Вы можете легко добавить еще одну скрепку сверху или снизу. Его также легко вставить посередине. Все, что вам нужно сделать, это просто разорвать цепочку посередине, добавить новую скрепку и снова соединить вторую половину. Связанный список похож на этот.

Пример:

package MyPackage import java.util.LinkedList import java.util.ListIterator public class connectedlist {public static void main (String args []) {/ * Объявление связанного списка * / LinkedListl_list = new LinkedList () / * add (String Item) is используется для добавления * элементов в связанный список * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Содержимое связного списка:' + l_list) / * Добавить элементы в указанную позицию * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Content после редактирования: '+ l_list) / * Добавить первый и последний элемент * / l_list.addFirst (' Первый курс ') l_list.addLast (' Последний курс ') System.out.println (' l_list Содержимое после добавления: '+ l_list) / * Получить и установите элементы в списке * / Object firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content после обновления первого элемента: '+ l_list) / * Удалить из позиции * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList после удаления элемента во 2-й и 3-й позиции' + l_list) / * Удалить первый и последний элемент * / l_list.removeFirst () l_list.removeLast () System.out.println ('Окончательное содержимое после удаления первого и последнего элемента : '+ l_list) / * Итерация связанного списка * / ListIteratoritrator = l_list.listIterator () System.out.println (' Список отображается с использованием итератора: ') while (itrator.hasNext ()) {System.out.println (itrator .Следующий()) } } }

Вывод:



Содержимое связанного списка = {Java, Python, Scala, Swift} Содержимое после редактирования = {Java, Python, JavaScript, Kotlin, Scala, Swift} Содержимое после добавления = {Первый курс, Java, Python, JavaScript, Kotlin, Scala, Swift, Последний курс} Первый элемент = {Первый курс} Контент после обновления первого элемента = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Последний курс} Контент после удаления элемента на 2-й и 3-й позиции = {Java9, Python, Kotlin, Scala, Swift, Last Course} Окончательный контент после удаления первого и последнего Item = {Python, Kotlin, Scala, Swift} Список, отображаемый с помощью iterator = Python Kotlin Scala Swift

А теперь перейдем к следующей теме.

Что такое ArrayList?

- это реализация интерфейса списка, в котором элементы могут быть динамически добавлены или удалены из соответствующего списка. Здесь размер списка увеличивается динамически, если количество добавленных элементов превышает исходный или фактический размер. Хотя он может быть медленнее, чем стандартные массивы, он может быть полезен в программах, где требуется много манипуляций с массивом.

LinkedList-vs-ArrayList-in-Java-Edureka

поиск наибольшего числа в массиве java

ArrayList используется для этих целей:

  • ArrayList в Java используется для магазин коллекция элементов динамического размера.
  • Инициализируется размером. Однако размер может увеличиваться, если коллекция увеличивается, и уменьшается, если объекты удаляются из .
  • Кроме того, ArrayList позволяет произвольно обращаться к списку.

Давайте продвинемся вперед и укажем на сходство между LinkedList и ArrayList в Java.

Сходства между LinkedList и ArrayList

В этом заметное сходство между LinkedList и ArrayList в Java.

  • ArrayList и LinkedList - это реализации Интерфейс списка .
  • И ArrayList, и LinkedList поддерживают порядок вставки элементов. Это означает, что при отображении элементов списка результат будет иметь тот же порядок, в котором элементы были вставлены в список.
  • Эти классыArrayList и LinkedList не синхронизированы и могут быть явно синхронизированы с помощью CollectionsSynchronizedList метод.
  • Итератор и ListIterator, возвращаемые этими классами, работают без сбоев. Это означает, что если список структурно изменяется в любой момент времени после создания итератора, за исключениемсобственные методы удаления или добавления итератора, итератор выдаст ConcurrentModificationException .

Различия между LinkedList и ArrayList

Во-первых, давайте посмотрим на параметры для сравнения LinkedList и ArrayList в Java.

Параметры для сравнения LinkedList и ArrayList в Java:

  • Операция
  • Реализация
  • Обработать
  • объем памяти
  1. Операции

Операции вставки, добавления и удаления элемента выполняются быстрее в LinkedList потому что нам не нужно изменять размер, как в ArrayList.

2. Реализация

ArrayList основан на концепция динамически изменяемого массива, а LinkedList основан на реализации двусвязного списка

3. Обработать

К LinkedList Класс может использоваться как список и очередь, поскольку он реализует интерфейсы List и Deque, тогда как ArrayList может реализовывать только списки.

Четыре. объем памяти

К LinkedList потребляет больше памяти, чем ArrayList потому что каждый узел в LinkedList хранит две ссылки, тогда как ArrayList содержит только данные и их индекс

LinkedList против ArrayList в Java

ПараметрыLinkedListArrayList
Операции

Операции вставки, добавления и удаления выполняются намного быстрее

Сравнительно операцииздесь медленно

Реализация

Следует за реализацией двусвязного списка

Следует концепции динамически изменяемого массива

Обработать

Класс LinkedList может быть списком и очередью, поскольку он реализует интерфейсы List и Deque.

Класс ArrayList может быть списком, потому что он реализует только списки

объем памяти

Потребление памяти в LinkedList высокое

Меньше по сравнению с LinkedList

Вот и все, ребята! На этом мы подошли к концу статьи о LinkedList и ArrayList в Java. Я надеюсь, что вы, ребята, ясно понимаете, о чем говорится в этой статье.

Если вы нашли эту статью «LinkedList vs ArrayList в Java», ознакомьтесь с от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Мы здесь, чтобы помочь вам на каждом этапе вашего пути, и мы предлагаем учебную программу, предназначенную для студентов и профессионалов, которые хотят стать Java-разработчиками.