Pessoal como faço só os 3 primeiro valores de uma lista encadeada?
e será que não tem uma forma de pegar os valores que eu quero, pois preciso pegar o primeiro o quarto e o sétimo valor de uma lista encadeada de 9 valores. Alguém poderia me ajudar? desde já agradeço!
List<Object> listaLigada = new LinkedList<Object>();
for(int indice = 0; indice < 3; indice++){
Object objeto = listaLigada.get(indice);
}
Object primeiroValor = suaLista.get(0);
Object quartoValor = suaLista.get(3);
Object setimoValor = suaLista.get(6);
Espero que tenha ajudado.
Esqueci de mencionar mas é uma lista encadeada com nós e não array list mas mesmo assim obrigado por tentar ajudar!!!
Ele implementou LinkedList, não ArrayList.
Mas a LinkedList
também tem acesso por índice, e esse código que o @Aporo colocou funciona. A diferença é que a complexidade computacional do acesso por índice é O(n)
, diferente de uma ArrayList
que tem complexidade constante O(1)
.
Nesse caso, o código dele faz 3 acessos à lista. Se você tem uma lista com 1 bilhão de nós, e quer os primeiros 10 milhões, a lista vai ser percorrida 10 milhões de vezes, e isso não é interessante.
O que você pode fazer é usar um Iterator
e só avançar ele 3 vezes (ou quantos primeiros elementos você deseja pegar).
Outra solução é criar uma lista própria (herda de LinkedList) que só adiciona um método novo: List<E> getFirstNElements(int n)
. Aí você implementa esse método de forma a retornar uma lista com os primeiros n
elementos, e só percorre uma vez (com um iterator).