logo

자바 LinkedList 클래스

Java LinkedList 클래스 계층 구조

Java LinkedList 클래스는 이중 연결 목록을 사용하여 요소를 저장합니다. 연결된 목록 데이터 구조를 제공합니다. AbstractList 클래스를 상속하고 List 및 Deque 인터페이스를 구현합니다.

Java LinkedList의 중요한 점은 다음과 같습니다.

  • Java LinkedList 클래스에는 중복 요소가 포함될 수 있습니다.
  • Java LinkedList 클래스는 삽입 순서를 유지합니다.
  • Java LinkedList 클래스가 동기화되지 않았습니다.
  • Java LinkedList 클래스에서는 이동이 필요하지 않기 때문에 조작이 빠릅니다.
  • Java LinkedList 클래스는 목록, 스택 또는 대기열로 사용할 수 있습니다.

LinkedList 클래스의 계층 구조

위 다이어그램에서 볼 수 있듯이 Java LinkedList 클래스는 AbstractSequentialList 클래스를 확장하고 List 및 Deque 인터페이스를 구현합니다.

언제나 모키토

이중 연결리스트

이중 연결 리스트의 경우 양쪽에서 요소를 추가하거나 제거할 수 있습니다.

이중 연결 목록을 사용하는 Java LinkedList 클래스

LinkedList 클래스 선언

java.util.LinkedList 클래스 선언을 살펴보겠습니다.

이진 검색을 위한 Python 프로그램
 public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable 

Java LinkedList의 생성자

건설자 설명
링크드리스트() 빈 목록을 구성하는 데 사용됩니다.
LinkedList(컬렉션 c) 지정된 컬렉션의 요소를 포함하는 목록을 컬렉션의 반복자가 반환하는 순서대로 구성하는 데 사용됩니다.

Java LinkedList의 메소드

방법 설명
부울 추가(E e) 목록의 끝에 지정된 요소를 추가하는 데 사용됩니다.
void add(int 인덱스, E 요소) 목록의 지정된 위치 인덱스에 지정된 요소를 삽입하는 데 사용됩니다.
부울 addAll(컬렉션 c) 지정된 컬렉션의 반복자가 반환하는 순서대로 지정된 컬렉션의 모든 요소를 ​​이 목록의 끝에 추가하는 데 사용됩니다.
부울 addAll(컬렉션 c) 지정된 컬렉션의 반복자가 반환하는 순서대로 지정된 컬렉션의 모든 요소를 ​​이 목록의 끝에 추가하는 데 사용됩니다.
부울 addAll(int 인덱스, 컬렉션 c) 목록의 지정된 위치에서 시작하여 지정된 컬렉션의 모든 요소를 ​​추가하는 데 사용됩니다.
무효 addFirst(E e) 목록의 시작 부분에 지정된 요소를 삽입하는 데 사용됩니다.
무효 addLast(E e) 주어진 요소를 목록 끝에 추가하는 데 사용됩니다.
무효 클리어() 목록에서 모든 요소를 ​​제거하는 데 사용됩니다.
객체 복제() ArrayList의 얕은 복사본을 반환하는 데 사용됩니다.
부울 포함(객체 o) 목록에 지정된 요소가 포함되어 있으면 true를 반환하는 데 사용됩니다.
반복자 내림차순Iterator() deque의 요소에 대해 역순으로 반복자를 반환하는 데 사용됩니다.
E요소() 목록의 첫 번째 요소를 검색하는 데 사용됩니다.
E get(int 인덱스) 목록의 지정된 위치에 있는 요소를 반환하는 데 사용됩니다.
E getFirst() 목록의 첫 번째 요소를 반환하는 데 사용됩니다.
E getLast() 목록의 마지막 요소를 반환하는 데 사용됩니다.
int indexOf(객체 o) 지정된 요소가 처음 나타나는 목록의 인덱스를 반환하거나 목록에 요소가 없으면 -1을 반환하는 데 사용됩니다.
int lastIndexOf(객체 o) 지정된 요소가 마지막으로 나타나는 목록의 인덱스를 반환하거나 목록에 요소가 없으면 -1을 반환하는 데 사용됩니다.
ListIterator listIterator(int 인덱스) 목록의 지정된 위치에서 시작하여 적절한 순서로 요소의 목록 반복자를 반환하는 데 사용됩니다.
부울 제안(E e) 지정된 요소를 목록의 마지막 요소로 추가합니다.
불리언 OfferFirst(E e) 목록 앞에 지정된 요소를 삽입합니다.
불리언 OfferLast(E e) 목록 끝에 지정된 요소를 삽입합니다.
이 엿보기() 목록의 첫 번째 요소를 검색합니다.
E peekFirst() 목록의 첫 번째 요소를 검색하거나 목록이 비어 있으면 null을 반환합니다.
E peekLast() 목록의 마지막 요소를 검색하거나 목록이 비어 있으면 null을 반환합니다.
전자설문() 목록의 첫 번째 요소를 검색하고 제거합니다.
E pollFirst() 목록의 첫 번째 요소를 검색하여 제거하거나 목록이 비어 있으면 null을 반환합니다.
E pollLast() 목록의 마지막 요소를 검색하여 제거하거나 목록이 비어 있으면 null을 반환합니다.
그리고 팝() 목록으로 표시되는 스택에서 요소를 팝합니다.
무효 푸시(E e) 목록으로 표시되는 스택에 요소를 푸시합니다.
E 제거() 목록의 첫 번째 요소를 검색하고 제거하는 데 사용됩니다.
E 제거(int 인덱스) 목록의 지정된 위치에 있는 요소를 제거하는 데 사용됩니다.
부울 제거(객체 o) 목록에서 지정된 요소의 첫 번째 항목을 제거하는 데 사용됩니다.
E 제거첫번째() 목록에서 첫 번째 요소를 제거하고 반환합니다.
부울 RemoveFirstOccurrence(객체 o) 목록에서 지정된 요소의 첫 번째 항목을 제거하는 데 사용됩니다(목록을 처음부터 끝까지 탐색할 때).
E 제거마지막() 목록에서 마지막 요소를 제거하고 반환합니다.
부울 RemoveLastOccurrence(객체 o) 목록에서 지정된 요소의 마지막 항목을 제거합니다(목록을 처음부터 끝까지 탐색할 때).
E 세트(int 인덱스, E 요소) 목록의 지정된 위치에 있는 요소를 지정된 요소로 바꿉니다.
객체[] toArray() 이는 목록의 모든 요소를 ​​적절한 순서(첫 번째 요소부터 마지막 ​​요소까지)로 포함하는 배열을 반환하는 데 사용됩니다.
T[] toArray(T[] a) 이는 적절한 순서(첫 번째 요소부터 마지막 ​​요소까지)의 모든 요소를 ​​포함하는 배열을 반환합니다. 반환된 배열의 런타임 유형은 지정된 배열의 런타임 유형입니다.
정수 크기() 목록의 요소 수를 반환하는 데 사용됩니다.

자바 LinkedList 예

 import java.util.*; public class LinkedList1{ public static void main(String args[]){ LinkedList al=new LinkedList(); al.add('Ravi'); al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 
 Output: Ravi Vijay Ravi Ajay 

요소를 추가하는 Java LinkedList 예제

여기서는 요소를 추가하는 다양한 방법을 살펴보겠습니다.

 import java.util.*; public class LinkedList2{ public static void main(String args[]){ LinkedList ll=new LinkedList(); System.out.println('Initial list of elements: '+ll); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); System.out.println('After invoking add(E e) method: '+ll); //Adding an element at the specific position ll.add(1, 'Gaurav'); System.out.println('After invoking add(int index, E element) method: '+ll); LinkedList ll2=new LinkedList(); ll2.add('Sonoo'); ll2.add('Hanumat'); //Adding second list elements to the first list ll.addAll(ll2); System.out.println('After invoking addAll(Collection c) method: '+ll); LinkedList ll3=new LinkedList(); ll3.add('John'); ll3.add('Rahul'); //Adding second list elements to the first list at specific position ll.addAll(1, ll3); System.out.println('After invoking addAll(int index, Collection c) method: '+ll); //Adding an element at the first position ll.addFirst('Lokesh'); System.out.println('After invoking addFirst(E e) method: '+ll); //Adding an element at the last position ll.addLast('Harsh'); System.out.println('After invoking addLast(E e) method: '+ll); } } 
 Initial list of elements: [] After invoking add(E e) method: [Ravi, Vijay, Ajay] After invoking add(int index, E element) method: [Ravi, Gaurav, Vijay, Ajay] After invoking addAll(Collection c) method: [Ravi, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addAll(int index, Collection c) method: [Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addFirst(E e) method: [Lokesh, Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat] After invoking addLast(E e) method: [Lokesh, Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat, Harsh] 

요소를 제거하는 Java LinkedList 예제

여기서는 요소를 제거하는 다양한 방법을 볼 수 있습니다.

 import java.util.*; public class LinkedList3 { public static void main(String [] args) { LinkedList ll=new LinkedList(); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); ll.add('Anuj'); ll.add('Gaurav'); ll.add('Harsh'); ll.add('Virat'); ll.add('Gaurav'); ll.add('Harsh'); ll.add('Amit'); System.out.println('Initial list of elements: '+ll); //Removing specific element from arraylist ll.remove('Vijay'); System.out.println('After invoking remove(object) method: '+ll); //Removing element on the basis of specific position ll.remove(0); System.out.println('After invoking remove(index) method: '+ll); LinkedList ll2=new LinkedList(); ll2.add('Ravi'); ll2.add('Hanumat'); // Adding new elements to arraylist ll.addAll(ll2); System.out.println('Updated list : '+ll); //Removing all the new elements from arraylist ll.removeAll(ll2); System.out.println('After invoking removeAll() method: '+ll); //Removing first element from the list ll.removeFirst(); System.out.println('After invoking removeFirst() method: '+ll); //Removing first element from the list ll.removeLast(); System.out.println('After invoking removeLast() method: '+ll); //Removing first occurrence of element from the list ll.removeFirstOccurrence('Gaurav'); System.out.println('After invoking removeFirstOccurrence() method: '+ll); //Removing last occurrence of element from the list ll.removeLastOccurrence('Harsh'); System.out.println('After invoking removeLastOccurrence() method: '+ll); //Removing all the elements available in the list ll.clear(); System.out.println('After invoking clear() method: '+ll); } } 
 Initial list of elements: [Ravi, Vijay, Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking remove(object) method: [Ravi, Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking remove(index) method: [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] Updated list : [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit, Ravi, Hanumat] After invoking removeAll() method: [Ajay, Anuj, Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking removeFirst() method: [Gaurav, Harsh, Virat, Gaurav, Harsh, Amit] After invoking removeLast() method: [Gaurav, Harsh, Virat, Gaurav, Harsh] After invoking removeFirstOccurrence() method: [Harsh, Virat, Gaurav, Harsh] After invoking removeLastOccurrence() method: [Harsh, Virat, Gaurav] After invoking clear() method: [] 

요소 목록을 뒤집는 Java LinkedList 예제

 import java.util.*; public class LinkedList4{ public static void main(String args[]){ LinkedList ll=new LinkedList(); ll.add('Ravi'); ll.add('Vijay'); ll.add('Ajay'); //Traversing the list of elements in reverse order Iterator i=ll.descendingIterator(); while(i.hasNext()) { System.out.println(i.next()); } } } 
 Output: Ajay Vijay Ravi 

Java LinkedList 예: 도서

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class LinkedListExample { public static void main(String[] args) { //Creating list of Books List list=new LinkedList(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to list list.add(b1); list.add(b2); list.add(b3); //Traversing list for(Book b:list){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

산출:

 101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6