A classe Java LinkedList usa uma lista duplamente vinculada para armazenar os elementos. Ele fornece uma estrutura de dados de lista vinculada. Ele herda a classe AbstractList e implementa as interfaces List e Deque.
Os pontos importantes sobre Java LinkedList são:
- A classe Java LinkedList pode conter elementos duplicados.
- A classe Java LinkedList mantém o pedido de inserção.
- A classe Java LinkedList não é sincronizada.
- Na classe Java LinkedList, a manipulação é rápida porque nenhuma mudança precisa ocorrer.
- A classe Java LinkedList pode ser usada como lista, pilha ou fila.
Hierarquia da classe LinkedList
Conforme mostrado no diagrama acima, a classe Java LinkedList estende a classe AbstractSequentialList e implementa interfaces List e Deque.
pandas e numpy
Lista Duplamente Vinculada
No caso de uma lista duplamente vinculada, podemos adicionar ou remover elementos de ambos os lados.
Declaração de classe LinkedList
Vamos ver a declaração da classe java.util.LinkedList.
public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable
Construtores de Java LinkedList
Construtor | Descrição |
---|---|
LinkedList() | É usado para construir uma lista vazia. |
LinkedList (Coleção c) | É utilizado para construir uma lista contendo os elementos da coleção especificada, na ordem em que são retornados pelo iterador da coleção. |
Métodos de Java LinkedList
Método | Descrição |
---|---|
adição booleana (E e) | É usado para anexar o elemento especificado ao final de uma lista. |
void add (índice int, elemento E) | É usado para inserir o elemento especificado no índice de posição especificado em uma lista. |
booleano addAll (Coleção c) | É usado para anexar todos os elementos da coleção especificada ao final desta lista, na ordem em que são retornados pelo iterador da coleção especificada. |
booleano addAll (Coleção c) | É usado para anexar todos os elementos da coleção especificada ao final desta lista, na ordem em que são retornados pelo iterador da coleção especificada. |
boolean addAll (índice int, coleção c) | É usado para anexar todos os elementos da coleção especificada, começando na posição especificada da lista. |
void addPrimeiro(E e) | É usado para inserir um determinado elemento no início de uma lista. |
void addLast(E e) | É usado para anexar o elemento fornecido ao final de uma lista. |
vazio claro() | É usado para remover todos os elementos de uma lista. |
Clone de objeto() | É usado para retornar uma cópia superficial de um ArrayList. |
booleano contém (Objeto o) | É usado para retornar verdadeiro se uma lista contém um elemento especificado. |
Iterador descendenteIterator() | É usado para retornar um iterador sobre os elementos em um deque em ordem sequencial inversa. |
Elemento E() | É usado para recuperar o primeiro elemento de uma lista. |
E get (índice interno) | É usado para retornar o elemento na posição especificada em uma lista. |
E getPrimeiro() | É usado para retornar o primeiro elemento de uma lista. |
E getÚltimo() | É usado para retornar o último elemento de uma lista. |
int indexOf(Objeto o) | É usado para retornar o índice em uma lista da primeira ocorrência do elemento especificado, ou -1 se a lista não contiver nenhum elemento. |
int lastIndexOf(Objeto o) | É usado para retornar o índice em uma lista da última ocorrência do elemento especificado, ou -1 se a lista não contém nenhum elemento. |
ListIterator listIterator(índice int) | É usado para retornar um iterador de lista dos elementos na sequência adequada, começando na posição especificada na lista. |
oferta booleana (E e) | Adiciona o elemento especificado como o último elemento de uma lista. |
oferta booleanaPrimeiro(E e) | Ele insere o elemento especificado no início de uma lista. |
oferta booleanaÚltimo(E e) | Insere o elemento especificado no final de uma lista. |
E espiar() | Ele recupera o primeiro elemento de uma lista |
E espiarPrimeiro() | Ele recupera o primeiro elemento de uma lista ou retorna nulo se a lista estiver vazia. |
E espiarÚltimo() | Ele recupera o último elemento de uma lista ou retorna nulo se a lista estiver vazia. |
Enquete E() | Recupera e remove o primeiro elemento de uma lista. |
E enquetePrimeiro() | Ele recupera e remove o primeiro elemento de uma lista ou retorna nulo se a lista estiver vazia. |
E enqueteÚltima() | Ele recupera e remove o último elemento de uma lista ou retorna nulo se a lista estiver vazia. |
E pop() | Ele retira um elemento da pilha representado por uma lista. |
impulso vazio (E e) | Ele coloca um elemento na pilha representada por uma lista. |
E remover() | É usado para recuperar e remover o primeiro elemento de uma lista. |
E remover (índice int) | É usado para remover o elemento na posição especificada em uma lista. |
remoção booleana (Objeto o) | É usado para remover a primeira ocorrência do elemento especificado em uma lista. |
E removerPrimeiro() | Remove e retorna o primeiro elemento de uma lista. |
booleano removeFirstOccurrence(Object o) | É usado para remover a primeira ocorrência do elemento especificado em uma lista (ao percorrer a lista do início ao fim). |
E removerÚltimo() | Remove e retorna o último elemento de uma lista. |
booleano removeLastOccurrence(Object o) | Ele remove a última ocorrência do elemento especificado em uma lista (ao percorrer a lista do início ao fim). |
Conjunto E (índice int, elemento E) | Ele substitui o elemento na posição especificada em uma lista pelo elemento especificado. |
Objeto[] paraArray() | É usado para retornar um array contendo todos os elementos de uma lista na sequência adequada (do primeiro ao último elemento). |
T[] paraArray(T[] a) | Retorna um array contendo todos os elementos na sequência adequada (do primeiro ao último elemento); o tipo de tempo de execução da matriz retornada é o da matriz especificada. |
tamanho interno() | É usado para retornar o número de elementos de uma lista. |
Exemplo de LinkedList Java
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
Exemplo Java LinkedList para adicionar elementos
Aqui, vemos diferentes maneiras de adicionar elementos.
erro semântico
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]
Exemplo Java LinkedList para remover elementos
Aqui, vemos diferentes maneiras de remover um elemento.
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: []
Exemplo Java LinkedList para reverter uma lista de elementos
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
Exemplo Java LinkedList: Livro
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); } } }
Saída:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6