Converter Array para LinkedList, alguém já fez isso?
Converter Array para LinkedList, alguém já fez isso?
8 Respostas
Array do tipo Object[] ?
String[] a = { "a", "b", "c" };
List<String> l = Arrays.<String>asList( a );
for ( String s : l ) {
System.out.println( s );
}
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,
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
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 acimaAbraç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.
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 ?
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
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?!...