CodeGym /Blogue Java /Random-PT /Conversão de Array para ArrayList em Java
John Squirrels
Nível 41
San Francisco

Conversão de Array para ArrayList em Java

Publicado no grupo Random-PT
Oi! Na lição de hoje, falaremos sobre como inicializar um array em Java e como converter um array em um arraylist. Arrays são uma extensão da classe Container em Java e podem ser úteis como uma forma de manter temporariamente um conjunto de tipos de dados primitivos quando a quantidade de dados é especificamente conhecida. Mas os Arrays são estáticos quando criados, o que significa que, quando você cria um, não pode alterar o número de itens que contém. Você deve se lembrar de como inicializar um array em java; Se parece com isso:

datatype[] isArray;
Onde datatype é qualquer tipo de dado primitivo como int, float, long ou mesmo String. Você também pode colocar os colchetes após a declaração da seguinte forma:

datatype isArray[];
Então, como pegamos esse array estático com um número definido de elementos e o convertemos em um ArrayList? Bem, primeiro, vamos ver o que é um ArrayList.

A lista de matrizes

Um ArrayList pode ter um nome semelhante a um Array, mas é tratado de maneira completamente diferente. Isso porque um ArrayList não estende a classe Container, ele estende a classe List. E isso significa que tudo é tratado de forma diferente. Por um lado, por ser uma Lista, você pode manipulá-la de maneira diferente. Você pode aumentar ou diminuir o tamanho do ArrayList usando add(element) , que coloca o elemento no final da lista e aumenta o tamanho em um, se necessário. Ou você pode usar trimToSize ()que remove quaisquer índices vazios no final e ajusta o ArrayList ao seu tamanho atual. Portanto, você pode ver que há algumas vantagens em usar um ArrayList em vez de apenas um array. Em seguida, mostraremos dois métodos para converter de um Array para um ArrayList e como voltar, se necessário.

Movendo-se de Array para ArrayList e ArrayList para Array em Java

Então, digamos que você tenha escrito um programa para manter um inventário de quantas porcas e parafusos sua empresa tem em mãos para consertar árvores de gato. Durante anos, você só precisou de 30 tipos diferentes deles, por isso é fácil usar apenas uma matriz para acompanhar. Mas agora você tem um novo cliente que exige que você armazene 5 tipos adicionais. Como você pode alterar seu programa e manter todos os seus dados, E evitar ter que fazer isso novamente quando pegar outro cliente? Isso mesmo! Um ArrayList! Então, como você converte um Java Array em um ArrayList? Existem três métodos. Usando o método .asList() Arrays Java têm uma ótima ferramenta que você pode ver quando olha para a API chamada .asList() . Então você poderia apenas escrever nisso:

boltInventory.asList(bolts);
O problema com este método é que ele não cria um verdadeiro ArrayList. O que ele faz é criar uma Lista com tamanho fixo e imutável. Portanto, você ainda não pode alterar o tamanho de maneira dinâmica. Tentar adicionar ou remover elementos causará uma exceção. Portanto, embora isso tenha seus usos, não é uma conversão verdadeira. Mas podemos usar isso. Usando o .asList() como um Argumento Esta é a segunda maneira de converter um array em lista em Java. Como o método .asList() cria uma lista, podemos usá-la para passar uma referência ao nosso ArrayList real. Aqui está como inicializar um ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Isso criará um ArrayList com dez células vazias. No entanto, o () no final pode ser usado para passar um argumento para preencher o ArrayList. Então, combinando com o método .asList , você tem:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Isso passa a lista criada pelo método .asList() para o ArrayList, então agora você pode manipulá-la dinamicamente conforme necessário. Usando o método Collections.addAll() Outra maneira de converter um Array em um ArrayList em Java é usar este método. Ele passa o conteúdo do Array para o ArrayList. A sintaxe genérica para este método é:

Collections.addAll(c, T);
Onde c é o destino e T é o que está sendo passado. Portanto, para o nosso exemplo, a sintaxe ficaria assim:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Isso passará todo o conteúdo dos parafusos do Array para o novo ArrayList. Convertendo um ArrayList em um Array Pode haver um momento em que você precise converter um ArrayList em um Array em Java. Se você fizer isso, o ArrayList terá um método .toArray(a) , onde a é o destino. Portanto, para o nosso exemplo, a sintaxe seria:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Quando você altera uma lista para array em Java dessa forma, você está criando uma cópia profunda. Ou seja, todas as referências ao Array são diferentes das referências ao ArrayList. Assim, você pode manipular os dados no Array sem alterar os dados armazenados no ArrayList. É útil converter uma lista java em uma matriz quando você precisa testar dados.

Conclusão

Arrays são muito úteis para acesso rápido e manipulação rápida de conjuntos de dados menores, mas a incapacidade de alterar seu tamanho significa que eles perdem rapidamente a eficiência para uso a longo prazo. Um ArrayList oferece essa flexibilidade e a capacidade de inserir e remover nós conforme necessário. Aprender a converter uma matriz Java em uma lista melhorará a eficiência geral de seus programas e também melhorará seus tempos de execução.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION