Parece um pouco tarde, mas aqui estão meus dois centavos. Não podemos ter List<int>como inté um tipo primitivo, por isso só podemos terList<Integer> .
Java 8 (matriz int)
int[] ints = new int[] {1,2,3,4,5};
List<Integer> list11 =Arrays.stream(ints).boxed().collect(Collectors.toList());
Java 8 e abaixo (matriz inteira)
Integer[] integers = new Integer[] {1,2,3,4,5};
List<Integer> list21 = Arrays.asList(integers); // returns a fixed-size list backed by the specified array.
List<Integer> list22 = new ArrayList<>(Arrays.asList(integers)); // good
List<Integer> list23 = Arrays.stream(integers).collect(Collectors.toList()); //Java 8 only
Precisa ArrayList e não List?
Caso desejemos uma implementação específica de, Listpor exemplo ArrayList, podemos usar toCollectioncomo:
ArrayList<Integer> list24 = Arrays.stream(integers)
.collect(Collectors.toCollection(ArrayList::new));
Por list21que não pode ser estruturalmente modificado?
Quando usamos Arrays.asListo tamanho da lista retornada, é corrigido porque a lista retornada não é java.util.ArrayList, mas uma classe estática privada definida dentro java.util.Arrays. Portanto, se adicionarmos ou removermos elementos da lista retornada, um UnsupportedOperationExceptionserá lançado. Portanto, devemos prosseguir list22quando queremos modificar a lista. Se tivermos o Java8, também podemos usar list23.
Para ser claro, list21pode ser modificado no sentido que podemos chamar, list21.set(index,element)mas esta lista não pode ser estruturalmente modificada, ou seja, não pode adicionar ou remover elementos da lista. Você também pode verificar esta pergunta .
Se queremos uma lista imutável, podemos agrupá-la como:
List<Integer> list 22 = Collections.unmodifiableList(Arrays.asList(integers));
Outro ponto a ser observado é que o método Collections.unmodifiableList retorna uma visão inalterável da lista especificada. Uma coleção de visualizações não modificáveis é uma coleção que não pode ser modificada e também é uma exibição em uma coleção de suporte. Observe que as alterações na coleção de backup ainda podem ser possíveis e, se ocorrerem, serão visíveis na visualização não modificável.
Podemos ter uma lista realmente imutável no Java 9 e 10.
Lista verdadeiramente imutável
Java 9:
String[] objects = {"Apple", "Ball", "Cat"};
List<String> objectList = List.of(objects);
Java 10 (lista verdadeiramente imutável) de duas maneiras:
List.copyOf(Arrays.asList(integers))
Arrays.stream(integers).collect(Collectors.toUnmodifiableList());
Verifique também esta minha resposta para mais.
Arrays.asList(new int[] { 1, 2, 3 }):; definitivamente não compilou no Java 1.4.2, porque um nãoint[]é um .Object[]