Converter Array para LinkedList, alguém já fez isso?

8 respostas
A

Converter Array para LinkedList, alguém já fez isso?

8 Respostas

drigo.angelo

Array do tipo Object[] ?

davidbuzatto
Use o método asList de Arrays.
String[] a = { "a", "b", "c" };
List<String> l = Arrays.<String>asList( a );

for ( String s : l ) {
    System.out.println( s );
}
[]'s
A

Oi davidbuzatto, tudo bom? Grato pela ajuda…

Pois é, desta forma eu sei fazer, aliás, desta forma eu não consigo utilizar os métodos getLast, getFirst etc, esse é o x da questão pela qual não conseguí…
Entende?

LinkedList teste = new LinkedList(); // Desta forma consigo usar o metodos citado acima List teste = new LinkedList(); // Desta forma não consigo usar o métodos citado acima

Abraços,

drigo.angelo

Com o que davidbuzatto disse, dá pra fazer:

String[] a = { "a", "b", "c" };
LinkedList<String> l = new LinkedList(Arrays.<String>asList( a ));

System.out.println( l.getFirst() );

Creio que dê certo, mas não testei

nel

andredecotia:
Oi davidbuzatto, tudo bom? Grato pela ajuda…

Pois é, desta forma eu sei fazer, aliás, desta forma eu não consigo utilizar os métodos getLast, getFirst etc, esse é o x da questão pela qual não conseguí…
Entende?

LinkedList teste = new LinkedList(); // Desta forma consigo usar o metodos citado acima List teste = new LinkedList(); // Desta forma não consigo usar o métodos citado acima

Abraços,

Bom dia.

Vamos supor que você crie uma classe x que implemente uma interface y. Como não se pode instanciar a interface y você instancia a classe x e faz com que a sua interface y recebe esta instancia, perfeito? Se você adicionou 10 novos métodos além dos que constam na interface, não significa que essa interface seja capaz de utilizar esses 10 métodos concorda?

Você terá uma implementação especifica da sua interface y e não novos métodos ok? No seu caso, getFirst() e assim em diante.
Abraços.

rmendes08
drigo.angelo:
Com o que davidbuzatto disse, dá pra fazer:
String[] a = { "a", "b", "c" };
LinkedList<String> l = new LinkedList(Arrays.<String>asList( a ));

System.out.println( l.getFirst() );

Creio que dê certo, mas não testei

Assim você cria objetos demais ...

Qual o problema de criar o LinkedList e percorrer o array adicionando objetos, já que essa é a forma óbvia de se fazer ?

davidbuzatto

Faça como o drigo.angelo disse. Afinal, asList retorna um List (que você não sabe, nem deve saber) qual é a implementação.

Quanto ao que o rmendes08 disse, eu sinceramente acho esse tipo de preocupação, na maioria das vezes, uma baita de uma perda de tempo.
O que tem de tão absurdo criar alguns objetos a mais? Se a gente estivesse lidando com máquinas cheias de restrições de hardware, tudo bem a discussão é válida, mas eu acho bobeira ficar encanado com isso. Realmente, nada te impede de criar um método que receba um array, itere por ele e vá populando seu LinkedList.

[]'s

WellingtonRamos

Sinceramente, se a Collection não prover um método por onde passar um array, prefiro fazer um loop que popule. Normalmente é mais rápido e simples.

String[] array = {"a", "b", "c"};
		LinkedList<String> linkedList = new LinkedList<String>();
		
		for (String item : array) {
			linkedList.add(item);
		}

Aliás, estava vendo a implementação do addAll do linkedlist, e ele converte a lista em array?!...

Criado 9 de fevereiro de 2011
Ultima resposta 9 de fev. de 2011
Respostas 8
Participantes 6