LinkedList срещу ArrayList в Java: Знайте основните разлики



Тази статия LinkedList срещу ArrayList ще ви даде правилно сравнение между списъците, които изпълняват интерфейса на списъка

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

По-долу са разгледани темите в тази статия:





Нека да започнем!

Какво е LinkedList?

След масиви , втората по популярност структура на данни определено е . Свързаният списък е линейна структура от данни, която е съставена от aверига от възли, в която всеки възел съдържа стойност и aуказателкъм следващия възел във веригата.Също така, tпоследната връзка в свързан списък сочи към нула, указвайки края на веригата.Елемент в свързан списък се нарича a възел .Първият възел в списъка се нарича глава .Последният възел се нарича опашка .



Позволете ми да ви дам един прост пример за това: Представете си верига кламери, които са свързани помежду си. Можете лесно да добавите още една кламер в горната или долната част. Също така е лесно да вмъкнете такъв в средата. Всичко, което трябва да направите, е просто да прекъснете веригата в средата, да добавите нова кламер, след което да свържете отново половината. Свързаният списък е подобен на този.

Пример:

пакет MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {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 Съдържание след редактиране: '+ l_list) / * Добавяне на първи и последен елемент * / l_list.addFirst (' Първи курс ') l_list.addLast (' Последен курс ') System.out.println (' l_list Съдържание след добавяне: '+ l_list) / * Вземете и задайте елементи в списъка * / Обект firstvar = l_list.get (0) System.out.println ('Първи елемент:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Съдържание след актуализиране на първия елемент: '+ 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, Last Course} Съдържание след изтриване на елемент на 2-ра и 3-та позиция = {Java9, Python, Kotlin, Scala, Swift, Last Course} Окончателно съдържание след премахване на първия и последния елемент = {Python, Kotlin, Scala, Swift} Списъкът се показва с помощта на итератор = Python Kotlin Scala Swift

Сега да преминем към следващата тема.

Какво е ArrayList?

е изпълнението на списъчен интерфейс, където елементите могат да бъдат динамично добавяни или премахвани от съответния списък. Тук размерът на списъка се увеличава динамично, ако елементите се добавят повече от първоначалния или действителния размер. Въпреки че може да е по-бавен от стандартните масиви, може да бъде полезен в програми, където се изисква много манипулация в масива.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList се използва за тези цели:

променлив и неизменен в java
  • ArrayList в Java е свикнал магазин динамично оразмерена колекция от елементи.
  • Инициализира се от размер. Размерът обаче може да се увеличи, ако колекцията нараства и се свива, ако обектите бъдат премахнати от .
  • Също така, ArrayList ви позволява произволен достъп до списъка.

Нека продължим напред и да посочим приликите между LinkedList и ArrayList в Java.

Прилики между LinkedList и ArrayList

Това са забележителните прилики между LinkedList и ArrayList в Java.

  • ArrayList и LinkedList са изпълненията на Интерфейс на списъка .
  • Както ArrayList, така и LinkedList поддържат реда на вмъкване на елементите. Това означава, че докато се показват елементите на списъка, резултантният набор ще има същия ред, в който елементите са вмъкнати в списъка.
  • Класовете TheseArrayList и LinkedList не са синхронизирани и могат да бъдат синхронизирани изрично с помощта на CollectionsSynchronizedList метод.
  • Итераторът и ListIterator, върнати от тези класове, са бързи. Това означава, че ако списъкът е структурно модифициран по всяко време след създаването на итератора, с изключение насобствени методи за премахване или добавяне на итератор, итераторът ще хвърли a ConcurrentModificationException .

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

Първо, нека да разгледаме параметрите, за да сравним LinkedList срещу ArrayList в Java.

Параметри за сравняване на LinkedList и ArrayList в Java:

  • Операция
  • Изпълнение
  • Процес
  • Памет
  1. Операции

Операциите за вмъкване, добавяне и премахване на елемент са по-бързи в a LinkedList защото не е нужно да преоразмеряваме, както правим в ArrayList.

2. Изпълнение

ArrayList се основава на концепция за динамично мащабируем масив, докато LinkedList се основава на двойно свързано изпълнение на списък

3. Процес

ДА СЕ LinkedList class може да се използва като списък и опашка, тъй като реализира интерфейси List и Deque, докато ArrayList може да реализира само списъци.

Четири. Памет

ДА СЕ LinkedList консумира повече памет от ArrayList защото всеки възел в LinkedList съхранява две препратки, докато ArrayList съдържа само данни и техния индекс

LinkedList срещу ArrayList в Java

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

Операциите по вмъкване, добавяне и премахване са доста по-бързи

Сравнително операциитеса бавни тук

Изпълнение

Следва изпълнението на двойно свързан списък

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

Процес

Класът LinkedList може да бъде списък и опашка, защото реализира интерфейси List и Deque

какво е hashmap в java

Класът ArrayList може да бъде списък, тъй като той изпълнява само списъци

Памет

Консумацията на памет в LinkedList е висока

По-малко в сравнение с LinkedList

Това е всичко приятели! Това ни води до края на тази статия за LinkedList срещу ArrayList в Java. Надявам се, че вие ​​сте наясно с това, което се преподава в тази статия.

Ако сте намерили тази статия за „LinkedList срещу ArrayList в Java“, разгледайте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Ние сме тук, за да ви помогнем във всяка стъпка по вашето пътуване и измислим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат разработчик на Java.