image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
João Sena
João Sena19/05/2025 11:41
Compartilhe
WEX - End to End EngineeringRecomendados para vocêWEX - End to End Engineering

Diferenças básicas entre arrays e arrays list em Java

    Array X Arraylist

    Ao iniciar os estudos em estruturas de dados, nos deparamos com arrays e arrays list. A princípio, podem parecer ser a mesma coisa, mas existem algumas diferenças que devem ser levadas em consideração na hora da escolha da melhor estrutura para determinada situação. Vejamos algumas delas:

    Inicialização

    • Arrays possuem um tamanho definido que deve ser informado no momento da inicialização. Uma vez informado, esse valor não pode ser alterado, podendo ser informado de duas formas:
      a) Definindo o tamanho numeralmente: String[] array= new String[5];
      b) Definindo os valores: String[] fruits = {"Strawberry", "Peaches", "Cherries", "Grapes"};
    
    • Já em um arraylist não há necessidade de informar o tamanho da lista, uma vez que ela cresce e encolhe automaticamente. Também é possível informar os elementos no momento da criação:
      a) ArrayList<String> cars = new ArrayList<>();
      b) ArrayList<String> movies = new ArrayList<>(Arrays.asList("Jurassic Park", "The dark knight", "Avangers", "Interstellar"));
    

    Dados

    • Arrays podem armazenar tanto tipos primitivos quanto objetos / classes:
      a) int[] numbers = new int[5];
      b) Integer[] numbers = new Integer[5];
    
    • Arrays list armazenam apenas classes e objetos, não sendo possível armazenar dados primitivos:
      a) ArrayList<String> cars = new ArrayList<>();
      b) ArrayList<int> numbers = new ArrayList<>(); // Incorreto
    

    Adição de elementos

    • Em um array, um elemento é adicionado quando especificamos sua posição e informamos o valor, sendo bem parecido com uma variável:
      a) numbers[0] = 5;
      b) numbers[1] = 10;
    
    • Já no arraylist, existem algumas formas de fazê-lo: podemos adicionar o item no final da lista ao chamar o método 'add()' informado o valor. Podemos também chamar uma sobrecarga do método (add(x, y)) informando no primeiro parâmetro a posição do elemento, e no segundo o elemento em si. Podemos ainda chamar outra sobrecarga desse mesmo método (add(collection)), dessa vez, passando toda uma coleção:
      a) movies.add("Star wars");
      b) movies.add(1, "The Lord of the Rings"); // o objeto que estava nessa posição será empurrado para o  próxima
      c) movies.add(collection);
    

    Obtenção de elementos

    • Para obter um dado em um array, precisamos especificar sua posição:
    System.out.println(fruits[1]); // 'Peaches'
    
    • Em um arraylist, usamos o método 'get(x)', informando sua posição. Podemos ainda utilizar o método 'getFisrt()' e 'getLast()' para obtermos, respectivamente, o primeiro e último elementos:
      a) System.out.println(movies.get(1)); // The Lord of the Rings
      b) System.out.println(movies.getFirst()); // Jurassic Park
      c) System.out.println(movies.getLast()); // Star wars
    

    Tamanho

    • 'length' é uma propriedade do array que tem a função de retornar seu tamanho:
    fruits.length // 4
    
    • No arraylist, utilizamos o método 'size()':
    movies.size(); // 6
    

    Substituindo valores

    • Vamos simplesmente informar a posição e o seu novo valor quando trabalhamos com array:
    fruits[3] = "Mango"; // O outro elemento (grapes) será descartado
    
    • Com o arraylist, temos o método 'set(param1, param2)', onde o primeiro parâmetro representa a posição do item que será substituído, e o segundo o novo item:
    movies.set(3, "Harry Potter"); // 
    

    Remoção

    • Não é possível remover um elemento de um array, já que possui um tamanho fixo.
    • Para remover um elemento de um arraylist, vamos utilizar o método 'remove()' informando o index, ou o prórpio objeto:
    a) movies.remove(0); // Jurassic park
    b) movies.remove("Jurassic park");
    

    Impressão

    • Em arrays, vamos precisar chamar o método 'toString'. Se printarmos diretamente o array, tudo o que veremos será o endereço de memória:
      a) System.out.println(fruits); // Será impresso o endereço de memória
      b) System.out.println(Arrays.toString(fruits));
    
    • O arraylist já vem com o toString() implementado, não havendo necessidade de chamá-lo:
    System.out.println(moveis);
    
    Vale a pena saber bem as diferenças entre as estruturas de dados na hora de criar uma coleção, pois isso pode facilitar ou dificultar a manipulação de dados em um projeto :)
    Compartilhe
    Recomendados para você
    WEX - End to End Engineering
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Comentários (0)
    Recomendados para vocêWEX - End to End Engineering