logo

Java 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 インターフェイスを実装します。

mysqlの一意のキー

二重リンクリスト

二重リンクリストの場合、両側から要素を追加または削除できます。

二重リンクリストを使用するJava LinkedListクラス

LinkedList クラスの宣言

java.util.LinkedList クラスの宣言を見てみましょう。

 public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable 

Java LinkedList のコンストラクター

コンストラクタ 説明
LinkedList() 空のリストを作成するために使用されます。
LinkedList(コレクションc) これは、指定されたコレクションの要素を、コレクションのイテレータによって返される順序で含むリストを構築するために使用されます。

Java LinkedListのメソッド

方法 説明
ブール値 add(E e) 指定された要素をリストの末尾に追加するために使用されます。
void add(int インデックス, E 要素) これは、リスト内の指定された位置インデックスに指定された要素を挿入するために使用されます。
ブール値 addAll(コレクション c) これは、指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序でこのリストの末尾に追加するために使用されます。
ブール値 addAll(コレクション c) これは、指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序でこのリストの末尾に追加するために使用されます。
boolean addAll(int インデックス, コレクション c) これは、リストの指定された位置から開始して、指定されたコレクション内のすべての要素を追加するために使用されます。
void addFirst(E e) 指定された要素をリストの先頭に挿入するために使用されます。
void addLast(E e) 指定された要素をリストの末尾に追加するために使用されます。
ボイドクリア() リストからすべての要素を削除するために使用されます。
オブジェクトクローン() ArrayList の浅いコピーを返すために使用されます。
ブール値には (オブジェクト o) が含まれます リストに指定された要素が含まれている場合に true を返すために使用されます。
イテレータdecendingIterator() これは、両端キュー内の要素の反復子を逆の順序で返すために使用されます。
E要素() リストの最初の要素を取得するために使用されます。
E get(int インデックス) リスト内の指定された位置にある要素を返すために使用されます。
E getFirst() リスト内の最初の要素を返すために使用されます。
E getLast() リスト内の最後の要素を返すために使用されます。
intindexOf(オブジェクトo) これは、指定された要素が最初に出現するリスト内のインデックスを返すために使用されます。リストに要素が含まれていない場合は -1 を返します。
int lastIndexOf(オブジェクト o) これは、指定された要素が最後に出現したリスト内のインデックスを返すために使用されます。リストに要素が含まれていない場合は -1 を返します。
ListIterator listIterator(int インデックス) これは、リスト内の指定された位置から開始して、要素のリスト反復子を適切な順序で返すために使用されます。
ブール値オファー(E e) 指定された要素をリストの最後の要素として追加します。
ブール値 offerFirst(E e) 指定された要素をリストの先頭に挿入します。
ブール値オファーLast(E e) 指定された要素をリストの最後に挿入します。
E ピーク() リストの最初の要素を取得します
E ピークファースト() リストの最初の要素を取得するか、リストが空の場合は null を返します。
E ピークラスト() リストの最後の要素を取得するか、リストが空の場合は null を返します。
Epoll() リストの最初の要素を取得して削除します。
EpollFirst() リストの最初の要素を取得して削除します。リストが空の場合は null を返します。
EpollLast() リストの最後の要素を取得して削除します。リストが空の場合は null を返します。
そしてポップ() リストで表されるスタックから要素をポップします。
void Push(E e) リストで表されるスタックに要素をプッシュします。
E 削除() リストの最初の要素を取得して削除するために使用されます。
E 削除(int インデックス) リスト内の指定された位置にある要素を削除するために使用されます。
ブール値の削除(オブジェクトo) これは、リスト内の指定された要素の最初の出現を削除するために使用されます。
EremoveFirst() リストから最初の要素を削除して返します。
ブール値のremoveFirstOccurrence(オブジェクトo) これは、リスト内で最初に出現した指定された要素を削除するために使用されます (リストを先頭から末尾まで走査する場合)。
EremoveLast() リストから最後の要素を削除して返します。
ブール値のremoveLastOccurrence(オブジェクトo) リスト内の指定された要素の最後の出現を削除します (リストを先頭から末尾まで走査するとき)。
E set(int インデックス, E 要素) リスト内の指定された位置にある要素を、指定された要素に置き換えます。
オブジェクト[] toArray() これは、リスト内のすべての要素を適切な順序 (最初の要素から最後の要素まで) で含む配列を返すために使用されます。
T[] toArray(T[] a) これは、適切な順序 (最初の要素から最後の要素まで) のすべての要素を含む配列を返します。返される配列のランタイム型は、指定された配列のランタイム型です。
int サイズ() リスト内の要素の数を返すために使用されます。

Java 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 の例

ここでは、要素を追加するさまざまな方法を見ていきます。

Javaでのintから文字列への変換
 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