linked list java linked list implementation java examples
Овај водич објашњава шта је то структура података повезане листе на Јави и како створити, покренути, применити, прећи, преокренути и разврстати повезану листу Јава-а:
У Јави, ЛинкедЛист је структура података која чува елементе на несталној локацији. То је линеарна структура података.
Свака ставка података назива се „чвор“ и сваки чвор има део података и део адресе. Адресни део чува везу до следећег чвора у ЛинкедЛист-у.
=> Посетите овде да бисте видели серију Јава обуке за све.
Шта ћете научити:
- ЛинкедЛист у Јави
- Јава ЛинкедЛист Цласс
- Како створити повезану листу у Јави
- Имплементација повезане листе у Јави
- Пребаци / испиши повезану листу у Јави
- ЛинкедЛист Метходс
- Обрнута повезана листа у Јави
- Поредај повезану листу у Јави
- Уклоните дупликате
- Кружно повезана листа у Јави
- Јава 8 ЛинкедЛист
- Често постављана питања
- Закључак
ЛинкедЛист у Јави
Доље је дат општи изглед ЛинкедЛист-а:
Као што је приказано у горњем приказу ЛинкедЛист-а, свака ставка у ЛинкедЛист-у је „Чвор“. Сваки чвор има два дела, први део чува податке, а други део има референцу или показивач или адресу следећег чвора у ЛинкедЛист-у.
ц # питања и одговори за технички интервју
Овај аранжман је неопходан јер се подаци у ЛинкедЛист-у чувају на несавезним локацијама, за разлику од Арраис-а.
„Глава“ ЛинкедЛист-а је показивач који садржи адресу првог елемента ЛинкедЛист-а. Последњи чвор на ЛинкедЛист-у је реп. Као што је приказано на горњој слици, адресни део последњег чвора у ЛинкедЛист-у постављен је на „Нулл“ што означава крај ЛинкедЛист-а.
Горњи дијаграм представља „ Списак појединачно повезаних ”Који чува адресу само следећег чвора у ЛинкедЛист-у.
Постоји још једна верзија позната као „ Двоструко повезана листа ”Чији сваки чвор има три дела:
- Адреса или референца или показивач на претходни елемент у ЛинкедЛист-у.
- Дио података
- Адреса или референца или показивач на следећи елемент у ЛинкедЛист-у.
Претходна адреса првог елемента у ЛинкедЛист-у биће постављена на Нулл, док је следећи показивач на Ласт елемент у ЛинкедЛист-у постављен на Нулл.
Представљање двоструко повезане листе:
Као што је приказано у горњој представи, сваки чвор на двоструко повезаној листи има показиваче на свој претходни и следећи чвор (тако представљени без стрелица). Претходни показивач првог чвора показује на нулу, док следећи показивач последњег чвора показује на нулу.
У овом водичу за ЛинкедЛист бавићемо се углавном појединачно повезаним списком. О двоструко повезаној листи ћемо разговарати у нашем следећем упутству.
Јава ЛинкедЛист Цласс
У Јави, повезану листу имплементира „ ЛинкедЛист ' класа. Ова класа припада „ јава.утил ”Пакет. Класа ЛинкедЛист имплементира интерфејсе Лист и Декуе и наслеђује класу АбстрацтЛист.
Доље је дата хијерархија класе класе ЛинкедЛист.
Горњи дијаграм приказује хијерархију класе ЛинкедЛист. Као што је приказано, класа ЛинкедЛист имплементира интерфејсе Лист и Декуе.
Као што је већ поменуто, класа ЛинкедЛист је део „ јава.утил ”Пакет. Стога бисте требали бити у могућности да користите класу ЛинкедЛист у свом програму тако што ћете у свој програм укључити једну од следећих изјава.
import java.util.*;
Или
import java.util.LinkedList;
Дакле, на основу горње хијерархије, типична дефиниција класе ЛинкедЛист је следећа:
public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable
У наставку су наведене неке од карактеристика класе ЛинкедЛист које бисте требали запамтити:
- Ова класа није синхронизована.
- Омогућава дуплиране вредности.
- Задржава редослед уметања.
- Како елементи не морају да се померају током кретања, манипулација елементима у њему је бржа.
- Ова класа се може користити за примену стека, реда и листе.
Како створити повезану листу у Јави
Пре него што пређемо на стварање повезане листе на Јави, прво разговарајмо о чвору повезане листе на Јави.
Као што је већ речено, повезана листа састоји се од чворова. Тако у Јави ЛинкедЛист можемо представити као класу, а њен Ноде као засебну класу. Отуда ће ова класа имати референцу на тип Ноде.
Ово је приказано као испод:
class LinkedList { Node head; // list head //node - linkedlist class Node { int data; Node next; Node(int d) { data = d; } //constructor to create a new node } }
Да бисте креирали објекат типа ЛинкедЛист, постоје два главна конструктора, како следи:
# 1) ЛинкедЛист ()
Општа синтакса за овај конструктор је:
LinkedList linkedList = new LinkedList();
Горња изјава ствара празан ЛинкедЛист.
На пример,
LinkedList l_list = new LinkedList();
Ово ће створити празну повезану листу под називом л_лист.
# 2) ЛинкедЛист (Колекција ц)
Општа синтакса је:
LinkedList linkedList = new LinkedList (Collection c);
Горња изјава креира ЛинкедЛист са елементима из колекције ц као почетним елементима.
Као и друге структуре података листе које смо већ видели, повезана листа се такође може покренути употребом методе адд, методе Арраис.асЛист () или употребом конструктора са колекцијом као аргументом.
Имплементација повезане листе у Јави
Доље је дат једноставан пример структуре података ЛинкедЛист у Јави. У овом примеру примене користићемо методу адд и асЛист за иницијализацију ЛинкедЛист објеката.
import java.util.*; public class Main{ public static void main(String() args) { //create a LinkedList object and initialize it with Array elements converted to list LinkedList intList = new LinkedList<>(Arrays.asList(10,20,30,40,50)); //print the LinkedList just created System.out.println('Contents of first LinkedList: ' + intList); //create an empty list LinkedList colorsList = new LinkedList<>(); //add elements to the linkedList using add method. colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('Cyan'); colorsList.add('Magenta'); // print the LinkedList System.out.println('
Contents of second LinkedList: ' + colorsList); } }
Излаз:
Садржај прве повезане листе: (10, 20, 30, 40, 50)
Садржај другог повезаног списка: (црвена, зелена, плава, цијан, магента)
Горњи програм приказује стварање и иницијализацију ЛинкедЛист-а. Прво креирамо ЛинкедЛист типа Интегер и пружамо низ Интегерс претворених у листу користећи асЛист метод као почетне вредности за ЛинкедЛист.
Даље, креирамо празан ЛинкедЛист типа Стринг, а затим помоћу методе адд додајемо вредности у ЛинкедЛист.
На крају, приказујемо оба ЛинкедЛист објекта као низ.
Пребаци / испиши повезану листу у Јави
Да бисте одштампали садржај или извршили било какве операције над елементима ЛинкедЛист-а, потребно је да се крећете кроз његове елементе. Ове методе смо већ видели у нашим претходним водичима. У овом одељку ћемо размотрити примере сваког од њих у вези са ЛинкедЛист-ом.
Коришћење фор петље
import java.util.LinkedList; class Main { public static void main(String() args) { // Create a LinkedList and initialize it LinkedList colorList = new LinkedList<>(); colorList.add('Red'); colorList.add('Green'); colorList.add('Blue'); // Using for loop,print the contents of the LinkedList System.out.println('LinkedList elements using for loop:'); for(int i=0; i Излаз:
ЛинкедЛист елементи који користе фор петљу:
Црвена Зелена Плава

Коришћење форЕацх Лооп
import java.util.LinkedList; class Main { public static void main(String() args) { // Create a LinkedList and initialize it LinkedList colorList = new LinkedList<>(); colorList.add('Red'); colorList.add('Green'); colorList.add('Blue'); // Using forEach loop,print the contents of the LinkedList System.out.println('LinkedList elements using forEach loop:'); for(String color:colorList) { System.out.print(color + ' '); } } }
Излаз:
Елементи ЛинкедЛист који користе форЕацх петљу:
Црвена Зелена Плава

Коришћење Итератора
import java.util.*; public class Main{ public static void main(String args()){ //declare a LinkedList object LinkedList l_list=new LinkedList(); //Add elements to LinkedList l_list.add('Red'); l_list.add('Green'); l_list.add('Blue'); l_list.add('Yellow'); //declare an iterator for the LinkedList Iterator itr=l_list.iterator(); System.out.println('The contents of Linked List:'); //Iterate through the LinkedList using Iterator and print its elements while(itr.hasNext()){ System.out.print(itr.next() + ' '); } } }
Излаз:
Садржај повезане листе:
Црвена Зелена Плава Жута
разлика између јединичног теста и интеграционог теста

ЛинкедЛист Метходс
Класа ЛинкедЛист пружа АПИ који подржава различите методе за манипулисање повезаном листом. Методе смо табеларизовали у ЛинкедЛист АПИ-ју у наставку.
О главним операцијама / методама разговараћемо у следећем одељку.
Метод Прототип Опис Јасно воид цлеар () Брише све елементе са листе. Додати логички додатак (Е е) Додајте наведени елемент на ЛинкедЛист воид адд (инт индекс, Е елемент) Додајте елемент на дати индекс у ЛинкедЛист АддАлл боолеан аддАлл (Колекција ц) Додаје елементе дате колекције ц на крају ЛинкедЛист-а. боолеан аддАлл (инт индекс, Збирка ц) Додаје елементе дате колекције ц наведеном индексу у ЛинкедЛист аддФирст воид аддФирст (Е е) Додајте дати елемент као први елемент у ЛинкедЛист. аддЛаст воид аддЛаст (Е е) Додајте дати елемент на крај листе. Клонирај Клон објекта () Прави плитку копију ЛинкедЛист-а Садржи Боолеан садржи (објекат о) Проверава да ли листа садржи одређене елементе; ако да, враћа се тачно. силазниИтератор Итератор силазноИтератор () Приказује обрнуто поредани итератор за ЛинкедЛист. Елемент Е елемент () Враћа елемент на челу листе. Добити Е гет (инт индекс) Добија елемент по наведеном индексу. гетФирст Е гетФирст () Дохваћа први елемент у ЛинкедЛист-у. гетЛаст Е гетЛаст () Дохваћа последњи елемент у ЛинкедЛист-у. индекс Инт индекОф (објекат о) Пронађите индекс првог појављивања датих елемената на листи и вратите индекс. -1 ако елемент није пронађен. ластИндекОф Инт ластИндекОф (објекат о) Враћа позицију последњег појављивања датог елемента у ЛинкедЛист; -1 ако дати елемент није присутан листИтератор ЛистИтератор листИтератор (инт индекс) Враћа листИтератор из наведеног индекса на повезаној листи. Понуда логичка понуда (Е е) Додаје дати елемент као последњи елемент (реп) у ЛинкедЛист. офферФирст Логичка понудаФирст (Е е) Додаје дати елемент као први елемент у ЛинкедЛист. офферЛаст Логичка понудаПоследња (Е е) Додајте дати елемент е на крај ЛинкедЛист-а. Завири Е пеек () Враћа главу листе без уклањања. пеекФирст Е пеекФирст () Приказује први елемент на листи. враћа нулу ако је листа празна. пеекЛаст Е пеекЛаст () Враћа последњи елемент или нулу ако је листа празна. Не брише елемент. Анкета Е анкета () Враћа главу ЛинкедЛист-а и такође је уклања. поллФирст Прва анкета () Враћа и брише први елемент са листе; враћа нулу ако је листа празна. поллЛаст Е анкетаПоследња () Враћа и брише последњи елемент са листе; враћа нулу ако је листа празна. Поп Е поп () Искаче елемент из представљања стека ЛинкедЛист-а. Притисни Празан притисак (Е е) Потискује или убацује елемент у приказ стека ЛинкедЛист-а. Уклоните Е уклони () Уклања и враћа главу ЛинкедЛист-а. Е уклони (инт индекс) Брише елемент са датог индекса са ЛинкедЛист-а. логичко уклањање (објекат о) Брише прву појаву датог елемента са ЛинкедЛист-а. ремовеФирст Е ремовеФирст () Враћа и брише први елемент са листе. ремовеФирстОццуренце боолеан ремовеФирстОццурренце (објекат о) Брише прву појаву датог елемента са листе када се листа пређе од главе до репа. ремовеЛаст Е ремовеЛаст () Враћа последњи елемент у ЛинкедЛист-у и такође га брише. ремовеЛастОццуренце боолеан ремовеЛастОццурренце (објекат о) Уклања последњу појаву датог елемента са ЛинкедЛист-а када се пређе од главе до репа Комплет Е сет (индекс инт, Е елемент) Поставља дати елемент на дати индекс. Замењује тренутни елемент новим. Величина Инт величина () Приказује величину или број елемената у ЛинкедЛист-у тоАрраи Објецт () тоАрраи () Претвара ЛинкедЛист у низ који садржи све елементе листе у правилном низу Т () доАрраи (Т () а) Претвара ЛинкедЛист у низ са типом времена извођења који је исти као аргумент а.
Доле наведени Јава програм приказује разне методе које смо горе навели.
import java.util.*; public class Main { public static void main(String args()) { //create a linked list LinkedList l_list = new LinkedList(); // Add elements to linkedList using various add methods l_list.add('B'); l_list.add('C'); l_list.addLast('G'); l_list.addFirst('A'); l_list.add(3, 'D'); l_list.add('E'); l_list.add('F'); //print the linkedList System.out.println('Linked list : ' + l_list); //Create and initialize an ArrayList ArrayList aList = new ArrayList<>(); aList.add('H'); aList.add('I'); //add the ArrayList to linkedList using addAll method l_list.addAll(aList); //print the linkedList System.out.println('Linked list after adding ArrayList contents: ' + l_list); // use various remove methods to remove elements from linkedList l_list.remove('B'); l_list.remove(3); l_list.removeFirst(); l_list.removeLast(); //print the altered list System.out.println('Linked list after deletion: ' + l_list); // use contains method to check for an element in the linkedList boolean ret_value = l_list.contains('G'); //print the results of contains method if(ret_value) System.out.println('List contains the element 'G' '); else System.out.println('List doesn't contain the element 'G''); // use size methods to return Number of elements in the linked list int size = l_list.size(); System.out.println('Size of linked list = ' + size); // Get and set elements from linked list Object element = l_list.get(3); System.out.println('Element returned by get() : ' + element); l_list.set(3, 'J'); System.out.println('Linked list after change : ' + l_list); //convert linkedList to Array using toArray methods String () list_array = l_list.toArray(new String(l_list.size())); System.out.println('Array obtained from linked List:' + Arrays.toString(list_array)); } }
Излаз:
Повезана листа: (А, Б, Ц, Д, Г, Е, Ф)
Повезана листа након додавања садржаја АрраиЛист: (А, Б, Ц, Д, Г, Е, Ф, Х, И)
Повезана листа након брисања: (Ц, Д, Е, Ф, Х)
Листа не садржи елемент „Г“
Величина повезане листе = 5
Елемент враћен помоћу гет (): Ф.
Повезана листа након промене: (Ц, Д, Е, Ј, Х)
Низ добијен са повезане листе: (Ц, Д, Е, Ј, Х)

Горњи програм демонстрира различите методе класе ЛинкедЛист. Прво проглашавамо ЛинкедЛист типа Стринг. Затим користимо разне верзије методе додавања попут адд, андФирст, аддЛаст, аддАлл итд. Да бисмо попунили ЛинкедЛист вредностима.
Овде можемо додати елемент директно на крај листе или додати елемент на одређено место на листи.
Такође користимо методу аддФирст за додавање елемента на почетку листе и аддЛаст за додавање елемента на крају листе. Затим изводимо операције уклањања на ЛинкедЛист-у попут ремове, ремовеФирст, ремовеЛаст итд.
За методу уклањања можемо одредити елемент који ћемо уклонити или индекс или позицију у ЛинкедЛист-у на којој елемент треба уклонити. Методе ремовеФирст и ремовеЛаст уклањају први и последњи елемент са листе.
Затим претражујемо листу одређеног елемента помоћу методе цонтаинс. Даље користимо методу сизе () да бисмо пронашли величину или дужину ЛинкедЛист-а. Затим користимо методе гет / сет да дохватимо вредност на одређеном индексу на листи, а затим заменимо вредност на одређеном месту на листи.
На крају, конвертујемо ЛинкедЛист у Арраи методом тоАрраи.
Обрнута повезана листа у Јави
Да бисмо преокренули повезану листу у Јави, користимо методу „десцендингИтератор ()“ која враћа обрнути итератор за листу. Тада можемо да користимо овај итератор за прелазак кроз листу и елементе приказа.
Програм у наставку преокреће повезану листу користећи методу десцендингИтератор ().
import java.util.*; public class Main{ public static void main(String args()){ //create a LinkedList object LinkedList l_list=new LinkedList(); l_list.add('Pune'); l_list.add('Mumbai'); l_list.add('Nagpur'); System.out.println('Linked List : ' + l_list); System.out.println('Linked List in reverse order:'); //use descendingIterator method to get a reverse iterator Iterator iter=l_list.descendingIterator(); //traverse the list using iterator and print the elements. while(iter.hasNext()) { System.out.print(iter.next() + ' '); } } }
Излаз:
Повезана листа: (Пуне, Мумбаи, Нагпур)
Повезана листа обрнутим редоследом:
Нагпур Мумбаи Пуне

У горе наведеном програму проглашавамо повезану листу, а затим је исписујемо. Затим добијамо обрнути итератор и затим корачамо кроз листу помоћу њега и приказујемо сваки елемент. Излаз приказује повезани садржај листе, прво редом додани елементи, а затим излаз приказује садржај обрнутим редоследом.
Поредај повезану листу у Јави
Објекти класе ЛинкедЛист могу се сортирати методом Цоллецтионс.сорт (). Овај метод пружа две верзије са или без употребе упоређивача. Када се метода Цоллецтионс.сорт () позове без упоређивача, збирка се сортира природним редоследом.
Када упоређивач користи се са овом методом, можемо дефинисати сопствене критеријуме сортирања заменом методе цомпареТо.
Доле наведени Јава програм сортира ЛинкедЛист помоћу Цоллецтионс.сорт (). Овде сортирамо низове користећи природни поредак као и помоћу упоређивача.
import java.util.*; public class Main{ public static void main(String args()) { // create and initialize the LinkedList object LinkedList l_list = new LinkedList<>(); l_list.add('Jan'); l_list.add('Feb'); l_list.add('Mar'); l_list.add('Apr'); l_list.add('May'); l_list.add('Jun'); //print original unsorted linkedlist System.out.println('Original LinkedList (unsorted): ' + l_list); // sort LinkedList with Collecitons.sort() method in natural order Collections.sort(l_list); System.out.println('
LinkedList (sorted in natural order): ' + l_list); // sort LinkedList using Collection.sort() and Comparator in Java Collections.sort(l_list, new Comparator() { @Override public int compare(String s1, String s2) { return s1.length() - s2.length(); } } ); System.out.println('LinkedList (sorted using Comparator): ' + l_list); } }
Излаз:
Оригинал ЛинкедЛист (несортирано): (јануар, фебруар, март, април, мај, јун)
ЛинкедЛист (сортирано у природном редоследу): (апр, фебруар, јануар, јун, март, мај)
ЛинкедЛист (сортирано помоћу упоређивача): (апр, фебруар, јануар, јун, март, мај)

Уклоните дупликате
Да бисте уклонили дупликате, потребно је да пређете сваки чвор и упоредите га са следећим чвором. Ако су оба чвора иста, прескачемо један чвор и прелазимо на следећи.
На овај начин, након преласка сваког чвора и уклањања дуплираних чворова, добићемо резултатску листу која нема дуплиране елементе.
напредна скл питања и одговори за пдф
Доље је дат Јава програм за уклањање дупликата.
class LinkedList_Duplicate { //A class to represent node in linkedlist class Node{ int data; Node next; public Node(int data) { this.data = data; this.next = null; } } //Initially the head and tail of the linked list set to null public Node head = null; public Node tail = null; //add a new node to the linkedlist public void addNode(int data) { //Create new node Node newNode = new Node(data); //If list is empty set head and tail to new node if(head == null) { head = newNode; tail = newNode; } else { // add newNode after the tail tail.next = newNode; //newNode is now the tail or last element tail = newNode; } } //scans the linkedlist and removes duplicate nodes public void removeDuplicateNodes() { //Head is the current node Node current = head, index = null, temp = null; //head = null means list is empty if(head == null) { return; } //traverse through the list else { while(current != null){ //temp node points to previous node to index. temp = current; //Index will point to node next to current index = current.next; while(index != null) { //Check if current node's data is equal to index node's data if(current.data == index.data) { //since node is duplicate skip index and point to next node temp.next = index.next; } else { //Temp will point to previous node of index. temp = index; } index = index.next; } current = current.next; } } } //print the linked list public void print() { //Node current will point to head Node current = head; if(head == null) { System.out.println('List is empty'); return; } while(current != null) { //Print each node by incrementing pointer System.out.print(current.data + ' '); current = current.next; } System.out.println(); } }class Main{ public static void main(String() args) { LinkedList_Duplicate l_List = new LinkedList_Duplicate(); //Add data to the list l_List.addNode(1); l_List.addNode(1); l_List.addNode(2); l_List.addNode(3); l_List.addNode(5); l_List.addNode(2); l_List.addNode(1); l_List.addNode(1); //print the original list System.out.println('Original Linkedlist: '); l_List.print(); //Removes duplicate nodes l_List.removeDuplicateNodes(); //print the altered list without duplicates System.out.println('LinkedList after removing duplicates: '); l_List.print(); } }
Излаз:
Оригинал Линкедлист:
1 1 2 3 5 2 1 1
ЛинкедЛист након уклањања дупликата:
1 2 3 5

У горњем програму имамо повезану класу листе створену за уклањање дупликата. Такође имамо класу за дефинисање сваког чвора. Другим речима, чворови на листи су објекти овог чвора класе. Имамо метод за додавање чвора на повезану листу.
Затим методом ремовеДуплицате прелазимо кроз сваки чвор на повезаној листи почевши од главе и упоређујемо сваки следећи чвор за дупликат. Ако се пронађе дупликат, прескочимо тај чвор и прелазимо на следећи чвор.
На овај начин ист се гради прескакањем дуплираних чворова и промењена листа се штампа методом принт ().
Кружно повезана листа у Јави
Кружно повезана листа је листа која има реп или последњи чвор повезан назад на главу или први чвор.
Дијаграм испод приказује кружно повезану листу у Јави.

Као што је приказано на горњем дијаграму, адресни део последњег чвора или репа повезане листе није постављен на нулу. Уместо тога, показује назад на први чвор или главу листе, чинећи тако кружно повезану листу.
Програм у наставку примењује кружну повезану листу у којој морамо манипулисати појединачним чворовима повезане листе.
class CircularLinkedList { //Node definition for circular linked list public class Node{ int data; Node next; public Node(int data) { this.data = data; } } //Initially head and tail pointers point to null public Node head = null; public Node tail = null; //add new node to the circular linked list public void add(int data){ //Create new node Node newNode = new Node(data); //check if list is empty if(head == null) { //head and tail point to same node if list is empty head = newNode; tail = newNode; newNode.next = head; } else { //tail points to new node if list is not empty tail.next = newNode; //New node becomes new tail. tail = newNode; //tail points back to head tail.next = head; } } //Display the nodes in circular linked list public void displayList() { Node current = head; if(head == null) { System.out.println('The List is empty'); } else { System.out.println('Circular linked list nodes: '); do{ //Print each node of the linked list System.out.print(current.data + ' '); current = current.next; }while(current != head); System.out.println(); } } } class Main{ public static void main(String() args) { //create a CircularLinkedList object CircularLinkedList c_list = new CircularLinkedList(); //Add data to the list c_list.add(10); c_list.add(20); c_list.add(30); c_list.add(40); //Display the nodes in circular linked list c_list.displayList(); } }
Излаз:
Чворови кружно повезане листе:
10 20 30 40

Јава 8 ЛинкедЛист
Иако у Јава 8 више нема посебно додатих класа ЛинкедЛист, она је ипак увела токове за манипулисање подацима.
Програм у наставку приказује употребу Јава 8 тока за приказ ЛинкедЛист-а.
import java.util.LinkedList; import java.util.List; public class Main { public static void main(String() args) { //create a LinkedList and initialize it to values List colorsList = new LinkedList<>(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('Cyan'); colorsList.add('Magenta'); //convert List to stream & print it System.out.println('The contents of LinkedList:'); colorsList.stream().forEach(System.out::println); } }
Излаз:
Садржај ЛинкедЛист-а:
Нето
Зелена
Плави
Циан
Магента

Често постављана питања
П # 1) Када се везана листа користи у Јави?
Одговор: Како је у операцијама модификације бржи од колекција попут АрраиЛист, требало би га користити у апликацијама које захтевају честе операције додавања / брисања. За апликације које имају углавном податке само за читање могу се користити АрраиЛист или сличне колекције.
К # 2) Шта је ЛистНоде?
Одговор: ЛистНоде је основна класа повезана са повезаном листом у Јави и представља информације повезане са једним елементом или чвором. Сваки ЛистНоде састоји се од података и показивача или референце на следећи елемент.
К # 3) Да ли повезана листа дозвољава нулл вредности?
Одговор: Да, повезана листа дозвољава неограничен број нулл вредности.
К # 4) Које су предности повезане листе?
Одговор: Неке од предности су:
- Операције манипулације попут додавања, брисања су брже у њему.
- Нема потребе да се претходно додељује меморија за повезану листу и тиме се постиже ефикасно коришћење меморије.
- Омогућава брже време приступа и без додатних трошкова за меморију и може се проширити за стално.
- То је динамичка структура података
- Расте и смањује се током извођења у зависности од вредности додате или избрисане.
К # 5) Која је примена повезане листе?
Одговор: Користи се углавном у следећим апликацијама:
- За примену функције „поништавања“ у софтверу као што су МС-Ворд, Пхотосхоп итд.
- За примену структура података попут стека и реда.
- Такође можемо имплементирати графиконе користећи повезану листу.
- За хеширање сегмента, свако сегме се може применити као повезана листа.
К # 6) Која су ограничења повезане листе?
Одговор: Нека ограничења су:
- Са додатним показивачем који садржи референцу следећег елемента у сваком чвору, искоришћена меморија је много више од низова.
- Ово је структура података са строго секвенцијалним приступом, па се чворови повезане листе увек морају читати од почетка.
- Тешко га је пребацити уназад, посебно појединачно повезане листе.
- Будући да су чворови ускладиштени на несталним локацијама, време потребно за приступ може бити велико.
Закључак
У овом упутству смо научили основну структуру података повезане повезане листе. Затим смо прешли на класу јава.утил.ЛинкедЛист која је обезбеђена на Јави. Детаљно смо разговарали о овој класи, укључујући њене конструкторе, методе итд.
Такође смо разговарали о неким специјалним операцијама повезаним са повезаним листама, попут сортирања, преокретања листе, уклањања дупликата, кружно повезане листе итд.
У нашем следећем упутству разговараћемо о специфичностима двоструко повезане листе.
=> Овде погледајте целокупан водич за Јава обуку.
Препоручено читање
- Двоструко повезана листа у Јави - примери примене и кода
- Јава листа - Како створити, иницијализовати и користити листу на Јави
- Методе Јава листе - Листа сортирања, Садржи, Додај листу, Уклони листу
- Бинарни алгоритам претраживања у Јави - примена и примери
- Сортирање уметања у Јави - Алгоритам сортирања уметања и примери
- Јава интерфејс и лекција са апстрактним часовима са примерима
- Повезана структура података листе на Ц ++ са илустрацијом
- Тајни списак у низ и друге колекције у Јави