Por favor, lembre-se que esta tradução da especificação é resultado de um projeto da comunidade java.net( https://jdk5-api-pt-br.dev.java.net/). A versão oficial da especificação é a versão na língua inglesa que pode ser encontrada em http://java.sun.com/j2se/1.5.0/docs/api/. Em caso de divergências, a versão predominante da especificação é a original em inglês.

Please note that this translation of the specification is the result of a java.net community project ( https://jdk5-api-pt-br.dev.java.net/ ). The official version of the specification is the US English language version which can be found at http://java.sun.com/j2se/1.5.0/docs/api/. In case of disputes, the authoritative version of the specification is the original, English document.


JavaTM 2 Platform
Standard Ed. 5.0

java.util
Class LinkedList<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<E>
          extended by java.util.AbstractSequentialList<E>
              extended by java.util.LinkedList<E>
Type Parameters:
E - o tipo dos elementos mantidos nesta coleção
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, Queue<E>

public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Queue<E>, Cloneable, Serializable

Implementação de lista encadeada da interface List. Implementa todas as operações List opcionais, e permite todos os elementos (inclusive null). Além de implementar a interface List, a classe LinkedList provê métodos uniformemente nomeados para get, remove e insert um elemento no início e no final de uma lista. Essas operações permitem que as listas encadeadas sejam utilizadas como pilha, fila, ou fila duplamente encadadeada (deque).

A classe implementa a interface Queue, provendo operações de fila first-in-first-out (primeiro-a-entrar-primeiro-a-sair) para add, poll, etc. Outras operações de pilha e de deque podem ser facilmente reconvertidas em termos da lista padrão de operações. Elas foram incluídas aqui, basicamente, por conveniência, embora possam rodar um pouco mais rápidas do que as operações List equivalentes.

Todas as operações apresentam o desempenho esperado para uma lista duplamente encadeada. Operações que indexam na lista percorrerão a mesma partindo do início ou do fim, o que estiver mais próximo do índice especificado.

Note que esta implementação não é sincronizada. Se múltiplos segmentos de execução (threads) acessam uma lista simultaneamente, e pelo menos um dos segmentos modifica estruturalmente a lista, ela deve ser sincronizada externamente. (Uma modificação estrutural é qualquer operação que adiciona ou remove um ou mais elementos; apenas alterar o valor de um elemento não é uma modificação estrutural). Tipicamente isto é realizado sincronizando em algum objeto que encapsule a lista naturalmente. Se tal objeto não existir, o método Collections.synchronizedList deve ser usado para empacotar a lista. Isto é melhor feito em tempo de criação, para prever um acidental acesso assíncrono à lista:

     List list = Collections.synchronizedList(new LinkedList(...));
 

Os iteradores retornados pelos métodos iterator e listIterator desta classe são fail-fast: se a lista for modificada estruturalmente depois da criação do iterador, que não seja pelos próprios métodos remove ou add do Iterator, o iterador lançará uma ConcurrentModificationException. Conseqüentemente, diante de uma modificação concorrente, o iterador falha rapidamente e de forma limpa, em vez de arriscar um comportamento arbitrário e não determinístico em um tempo indeterminado no futuro.

Note que o comportamento fail-fast de um iterador não pode ser garantido por ser, de uma forma geral, impossível fazer qualquer garantia mais rigorosa na presença de modificação concorrente assíncrona. Iteradores fail-fast lançam ConcurrentModificationException na base do melhor esforço. Portanto, seria errado escrever um programa que dependa desta exceção para sua correção: o comportamento fail-fast de iteradores deve ser usado apenas para detecção de erros.

Esta classe é membro do Java Collections Framework.

Since:
1.2
See Also:
List, ArrayList, Vector, Collections.synchronizedList(List), Serialized Form

Field Summary
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
LinkedList()
          Constrói uma lista vazia.
LinkedList(Collection<? extends E> c)
          Constrói uma lista contendo os elementos da coleção especificada, na ordem em que eles forem retornados pelo iterador da coleção.
 
Method Summary
 boolean add(E o)
          Acrescenta o elemento especificado ao final da lista.
 void add(int index, E element)
          Insere o elemento especificado na posição especificada na lista.
 boolean addAll(Collection<? extends E> c)
          Acrescenta todos os elementos contidos na coleção especificada ao final da lista, na ordem em que eles forem retornados pelo iterador da coleção.
 boolean addAll(int index, Collection<? extends E> c)
          Insere na lista todos os elementos da coleção especificada, começando na posição especificada.
 void addFirst(E o)
          Insere o elemento dado no início da lista.
 void addLast(E o)
          Acrescenta o elemento dado ao final da lista.
 void clear()
          Remove todos os elementos da lista.
 Object clone()
          Retorna uma cópia rasa desta LinkedList.
 boolean contains(Object o)
          Retorna true se a lista contém o elemento especificado.
 E element()
          Recupera, mas não remove, a cabeça (primeiro elemento) da lista.
 E get(int index)
          Retorna o elemento na posição especificada da lista.
 E getFirst()
          Retorna o primeiro elemento da lista.
 E getLast()
          Retorna o último elemento da lista.
 int indexOf(Object o)
          Retorna o índice da lista da primeira ocorrência do elemento especificado, ou -1 se a lista não contém esse elemento.
 int lastIndexOf(Object o)
          Retorna o índice da lista da última ocorrência do elemento especificado, ou -1 se a lista não contém esse elemento.
 ListIterator<E> listIterator(int index)
          Retorna um iterador tipo List dos elementos contidos na lista (na seqüência apropriada), começando na posição especificada da lista.
 boolean offer(E o)
          Adiciona o elemento especificado como o rabo (último elemento) da lista.
 E peek()
          Recupera, mas não remove, a cabeça (primeiro elemento) da lista.
 E poll()
          Recupera e remove a cabeça (primeiro elemento) da lista.
 E remove()
          Recupera e remove a cabeça (primeiro elemento) da lista.
 E remove(int index)
          Remove da lista o elemento na posição especificada.
 boolean remove(Object o)
          Remove da lista a primeira ocorrência do elemento especificado.
 E removeFirst()
          Remove e retorna o primeiro elemento da lista.
 E removeLast()
          Remove e retorna o último elemento da lista.
 E set(int index, E element)
          Substitui o elemento na posição especificada da lista pelo elemento especificado.
 int size()
          Retorna o número de elementos da lista.
 Object[] toArray()
          Retorna um vetor contendo todos os elementos da lista na ordem apropriada.
<T> T[]
toArray(T[] a)
          Retorna um vetor contendo todos os elementos da lista na ordem apropriada; o tipo em tempo de execução do vetor retornado é o mesmo do vetor especificado.
 
Methods inherited from class java.util.AbstractSequentialList
iterator
 
Methods inherited from class java.util.AbstractList
equals, hashCode, listIterator, removeRange, subList
 
Methods inherited from class java.util.AbstractCollection
containsAll, isEmpty, removeAll, retainAll, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
containsAll, equals, hashCode, isEmpty, iterator, listIterator, removeAll, retainAll, subList
 

Constructor Detail

LinkedList

public LinkedList()
Constrói uma lista vazia.


LinkedList

public LinkedList(Collection<? extends E> c)
Constrói uma lista contendo os elementos da coleção especificada, na ordem em que eles forem retornados pelo iterador da coleção.

Parameters:
c - a coleção cujo os elementos serão colocados na lista.
Throws:
NullPointerException - se a coleção especificada for nula.
Method Detail

getFirst

public E getFirst()
Retorna o primeiro elemento da lista.

Returns:
o primeiro elemento da lista.
Throws:
NoSuchElementException - se esta lista estiver vazia.

getLast

public E getLast()
Retorna o último elemento da lista.

Returns:
o último elemento da lista.
Throws:
NoSuchElementException - se a lista estiver vazia.

removeFirst

public E removeFirst()
Remove e retorna o primeiro elemento da lista.

Returns:
o primeiro elemento da lista.
Throws:
NoSuchElementException - se a lista estiver vazia.

removeLast

public E removeLast()
Remove e retorna o último elemento da lista.

Returns:
o último elemento da lista.
Throws:
NoSuchElementException - se a lista estiver vazia.

addFirst

public void addFirst(E o)
Insere o elemento dado no início da lista.

Parameters:
o - o elemento a ser inserido no início da lista.

addLast

public void addLast(E o)
Acrescenta o elemento dado ao final da lista. (Idêntico em funcionamento ao método add; incluído apenas por consistência.)

Parameters:
o - o elemento a ser inserido ao final da lista.

contains

public boolean contains(Object o)
Retorna true se a lista contém o elemento especificado. Mais formalmente, retorna true se, e somente se, a lista contém pelo menos um elemento e tal que (o==null ? e==null : o.equals(e)).

Specified by:
contains in interface Collection<E>
Specified by:
contains in interface List<E>
Overrides:
contains in class AbstractCollection<E>
Parameters:
o - elemento cuja presença na lista deve ser testada.
Returns:
true se a lista contém o elemento especificado.

size

public int size()
Retorna o número de elementos da lista.

Specified by:
size in interface Collection<E>
Specified by:
size in interface List<E>
Specified by:
size in class AbstractCollection<E>
Returns:
o número de elementos da lista.

add

public boolean add(E o)
Acrescenta o elemento especificado ao final da lista.

Specified by:
add in interface Collection<E>
Specified by:
add in interface List<E>
Overrides:
add in class AbstractList<E>
Parameters:
o - elemento a ser acrescentado à lista.
Returns:
true (como no contrato geral de Collection.add).

remove

public boolean remove(Object o)
Remove da lista a primeira ocorrência do elemento especificado. Se a lista não contém o elemento, fica inalterada. Mais formalmente, remove o elemento com o menor índice i tal que (o==null ? get(i)==null : o.equals(get(i))) (se tal elemento existir).

Specified by:
remove in interface Collection<E>
Specified by:
remove in interface List<E>
Overrides:
remove in class AbstractCollection<E>
Parameters:
o - elemento a ser removido da lista, se presente.
Returns:
true se a lista continha o elemento especificado.

addAll

public boolean addAll(Collection<? extends E> c)
Acrescenta todos os elementos contidos na coleção especificada ao final da lista, na ordem em que eles forem retornados pelo iterador da coleção. O comportamento desta operação é indefinido e a coleção especificada é modificada enquanto a operação está em progresso. (Isto implica que o comportamento desta chamada é indefinido se a Collection especificada for esta lista, e se esta lista não for vazia.)

Specified by:
addAll in interface Collection<E>
Specified by:
addAll in interface List<E>
Overrides:
addAll in class AbstractCollection<E>
Parameters:
c - os elementos a serem inseridos na lista.
Returns:
true se a lista foi modificada como resultado da chamada.
Throws:
NullPointerException - se a coleção especificada for nula.
See Also:
AbstractCollection.add(Object)

addAll

public boolean addAll(int index,
                      Collection<? extends E> c)
Insere na lista todos os elementos da coleção especificada, começando na posição especificada. Desloca o elemento atualmente nesta posição (se houver algum) e todos os elementos subseqüentes para a direita (incrementa seus índices). Os novos elementos aparecerão na lista na ordem em que eles forem retornados pelo iterador da coleção especificada.

Specified by:
addAll in interface List<E>
Overrides:
addAll in class AbstractSequentialList<E>
Parameters:
index - índice onde deve ser inserido o primeiro elemento da coleção especificada.
c - elementos a serem inseridos na lista.
Returns:
true se a lista foi modificada como resultado da chamada.
Throws:
IndexOutOfBoundsException - se o índice especificado estiver fora dos limites (index < 0 || index > size()).
NullPointerException - se a coleção especificada for nula.

clear

public void clear()
Remove todos os elementos da lista.

Specified by:
clear in interface Collection<E>
Specified by:
clear in interface List<E>
Overrides:
clear in class AbstractList<E>

get

public E get(int index)
Retorna o elemento na posição especificada da lista.

Specified by:
get in interface List<E>
Overrides:
get in class AbstractSequentialList<E>
Parameters:
index - índice do elemento a ser retornado.
Returns:
o elemento na posição especificada da lista.
Throws:
IndexOutOfBoundsException - se o índice especificado estiver fora dos limites (index < 0 || index >= size()).

set

public E set(int index,
             E element)
Substitui o elemento na posição especificada da lista pelo elemento especificado.

Specified by:
set in interface List<E>
Overrides:
set in class AbstractSequentialList<E>
Parameters:
index - índice do elemento a ser substituído.
element - elemento a ser armazenado na posição especificada.
Returns:
o elemento anterior ao da posição especificada.
Throws:
IndexOutOfBoundsException - se o índice especificado estiver fora dos limites (index < 0 || index >= size()).

add

public void add(int index,
                E element)
Insere o elemento especificado na posição especificada na lista. Desloca o elemento atualmente naquela posição (se houver algum) e seus subseqüentes elementos para a direita (adiciona um aos seus índices ).

Specified by:
add in interface List<E>
Overrides:
add in class AbstractSequentialList<E>
Parameters:
index - índice onde o elemento especificado deve ser inserido.
element - elemento a ser inserido.
Throws:
IndexOutOfBoundsException - se o índice especificado estiver fora dos limites (index < 0 || index > size()).

remove

public E remove(int index)
Remove da lista o elemento na posição especificada. Desloca os elementos subseqüentes para a esquerda (subtrai um de seus índices). Retorna o elemento que foi removido da lista.

Specified by:
remove in interface List<E>
Overrides:
remove in class AbstractSequentialList<E>
Parameters:
index - o índice do elemento a ser removido.
Returns:
o elemento previamente na posição especificada.
Throws:
IndexOutOfBoundsException - se o índice especificado estiver fora dos limites (index < 0 || index >= size()).

indexOf

public int indexOf(Object o)
Retorna o índice da lista da primeira ocorrência do elemento especificado, ou -1 se a lista não contém esse elemento. Mais formalmente, retorna o menor índice i tal que (o==null ? get(i)==null : o.equals(get(i))), ou -1 se não existir tal índice.

Specified by:
indexOf in interface List<E>
Overrides:
indexOf in class AbstractList<E>
Parameters:
o - elemento a ser buscado.
Returns:
o índice da lista da primeira ocorrência do elemento especificado, ou -1 se a lista não contém esse elemento.

lastIndexOf

public int lastIndexOf(Object o)
Retorna o índice da lista da última ocorrência do elemento especificado, ou -1 se a lista não contém esse elemento. Mais formalmente, retorna o maior índice i tal que (o==null ? get(i)==null : o.equals(get(i))), ou -1 se não existir tal índice.

Specified by:
lastIndexOf in interface List<E>
Overrides:
lastIndexOf in class AbstractList<E>
Parameters:
o - elemento a ser buscado.
Returns:
o índice da lista da última ocorrência do elemento especificado, ou -1 se a lista não contém esse elemento.

peek

public E peek()
Recupera, mas não remove, a cabeça (primeiro elemento) da lista.

Specified by:
peek in interface Queue<E>
Returns:
a cabeça da fila, ou null se a fila estiver vazia.
Since:
1.5

element

public E element()
Recupera, mas não remove, a cabeça (primeiro elemento) da lista.

Specified by:
element in interface Queue<E>
Returns:
a cabeça da fila.
Throws:
NoSuchElementException - se a fila estiver vazia.
Since:
1.5

poll

public E poll()
Recupera e remove a cabeça (primeiro elemento) da lista.

Specified by:
poll in interface Queue<E>
Returns:
a cabeça da fila, ou null se a fila estiver vazia.
Since:
1.5

remove

public E remove()
Recupera e remove a cabeça (primeiro elemento) da lista.

Specified by:
remove in interface Queue<E>
Returns:
a cabeça da fila.
Throws:
NoSuchElementException - se a fila estiver vazia.
Since:
1.5

offer

public boolean offer(E o)
Adiciona o elemento especificado como o rabo (último elemento) da lista.

Specified by:
offer in interface Queue<E>
Parameters:
o - o elemento a ser adicionado.
Returns:
true (como no contrato geral de Queue.offer)
Since:
1.5

listIterator

public ListIterator<E> listIterator(int index)
Retorna um iterador tipo List dos elementos contidos na lista (na seqüência apropriada), começando na posição especificada da lista. Obedece ao contrato geral de List.listIterator(int).

O iterador tipo List é fail-fast: se a lista for modificada estruturalmente depois da criação do iterador, que não seja pelos próprios métodos remove ou add do Iterator, o iterador lançará uma ConcurrentModificationException. Conseqüentemente, diante de uma modificação concorrente, o iterador falha rapidamente e de forma limpa, em vez de arriscar um comportamento arbitrário e não determinístico em um tempo indeterminado no futuro.

Specified by:
listIterator in interface List<E>
Specified by:
listIterator in class AbstractSequentialList<E>
Parameters:
index - índice do primeiro elemento a ser retornado do iterador list (por uma chamada a next).
Returns:
um ListIterator dos elementos nessa lista (na ordem apropriada), começando na posição especificada da lista.
Throws:
IndexOutOfBoundsException - if index is out of range (index < 0 || index > size()).
See Also:
List.listIterator(int)

clone

public Object clone()
Retorna uma cópia rasa desta LinkedList. (Os elementos em si não são clonados.)

Overrides:
clone in class Object
Returns:
uma cópia rasa desta instância de LinkedList.
See Also:
Cloneable

toArray

public Object[] toArray()
Retorna um vetor contendo todos os elementos da lista na ordem apropriada.

Specified by:
toArray in interface Collection<E>
Specified by:
toArray in interface List<E>
Overrides:
toArray in class AbstractCollection<E>
Returns:
um vetor contendo todos os elementos da lista na ordem apropriada.
See Also:
Arrays.asList(Object[])

toArray

public <T> T[] toArray(T[] a)
Retorna um vetor contendo todos os elementos da lista na ordem apropriada; o tipo em tempo de execução do vetor retornado é o mesmo do vetor especificado. Se a lista couber no vetor especificado, ele é retornado no próprio. Caso contrário, um novo vetor é alocado com o tipo em tempo de execução do vetor especificado e com o tamanho da lista.

Se a lista couber no vetor especificado com espaço de sobra (isto é, o vetor tem mais elementos do que a lista), o elemento no vetor imediatamente seguinte ao final da coleção é alterado para nulo. Isto é útil para determinar o tamanho da lista somente se o chamador souber que a lista não contém elementos nulos.

Specified by:
toArray in interface Collection<E>
Specified by:
toArray in interface List<E>
Overrides:
toArray in class AbstractCollection<E>
Parameters:
a - o vetor no qual os elementos da lista serão armazenados, se for grande o sufuciente; caso contrário, um novo vetor do mesmo tipo em tempo de execução é alocada para este propósito.
Returns:
um vetor contendo os elementos da lista.
Throws:
ArrayStoreException - se o tipo em tempo de execução de a não for um supertipo do tipo em tempo de execução de cada elemento da lista.
NullPointerException - se o vetor especificado for nulo.

JavaTM 2 Platform
Standard Ed. 5.0

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

Copyright 2006 Sun Microsystems, Inc. Todos os direitos reservados. O uso está sujeito aos termos da licensa.