Convertendo array para lista em Java
Como posso converter um array para uma lista em Java?
Eu utilizei o Arrays.asList()
mas o comportamento (e assinatura) de alguma forma mudou de Java SE 1.4.2 (docs agora em arquivo) para 8 e a maioria dos snippets que encontrei na web utilizam o comportamento 1.4.2.
Por exemplo:
int[] spam = new int[] { 1, 2, 3 };
Arrays.asList(spam)
- em 1.4.2 retorna uma lista contendo os elementos 1, 2, 3
- em 1.5.0+ retorna uma lista contendo o array de spam
Em muitos casos deve ser fácil de detectar, mas às vezes pode passar despercebido:
Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1);
948
3
No seu exemplo, é porque você não pode ter uma Lista de um tipo primitivo. Em outras palavras,
Lista
não é possível.Você pode, no entanto, ter uma
Lista
utilizando a classeInteger
que envolve oint
primitivo. Converta seu array para um métodoList
com o método Arrays.asList`].Veja isto código executado ao vivo no IdeOne.com.
O problema é que o varargs foi introduzido no Java5 e infelizmente,
Arrays.asList()
ficou sobrecarregado com uma versão vararg também. EntãoArrays.asList(spam)
é entendido pelo compilador Java5 como um parâmetro vararg de arrays int.Este problema é explicado em mais detalhes em Effective Java 2nd Ed., Capítulo 7, Item 42.
você tem que se organizar