Adicionar elementos em um ArrayList manualmente

7 respostas Resolvido
T

Olá pessoal, estou com uma dúvida em relação à ArrayList: como faço pra adicionar elementos manualmente, do mesmo jeito que faz com um array normal?

7 Respostas

TerraSkilll

Pode dar um exemplo do que seria inserir “manualmente” em um array normal? E como você espera que isso funcione em um ArrayList?

Se fala de inserir em uma posição específica usando um índice, pode usar o add() com 2 parâmetros, mas o índice precisa ser uma posição válida (menor ou igual ao total ocupado). Ex: 2CKphW - Online Java Compiler & Debugging Tool - Ideone.com

Abraço.

wldomiciano

Eu também entendi como o @TerraSkilll.

Se for isso mesmo, vc tem que ter em mente que em Java um array de objetos já começa preenchido com valores null.

Então vc precisaria simular este comportamento com ArrayList, para isso vc poderia fazer algo assim:

import java.util.ArrayList;
import java.util.Arrays;

public class App {
  public static void main(String... args) {
    ArrayList<String> list = new ArrayList<String>(Arrays.asList(new String[3]));

    list.set(2, "A");
    list.set(1, "B");
    list.set(0, "C");

    System.out.println(list);
  }
}

Mas se não precisar ser exatamente o java.util.ArrayList, vc poderia deixar o código mais simples assim:

import java.util.Arrays;
import java.util.List;

public class App {
  public static void main(String... args) {
    List<String> list = Arrays.asList(new String[3]);

    list.set(2, "A");
    list.set(1, "B");
    list.set(0, "C");

    System.out.println(list);
  }
}

A diferença é que neste segundo exemplo vc não pode usar o método add() e nenhum outro método que altere o tamanho da lista como remove().

T

Pra ficar melhor de entender, do mesmo jeito que adicionamos manualmente em um array, por exemplo, String[] nomes = {“Thiago”, “Rose”, “Maria”};
queria fazer do mesmo jeito em um ArrayList.

davidbuzatto
List<String> nomes = Arrays.asList("Thiago", "Rose", "Maria");

A lista retornada não é obrigatoriamente um ArrayList. Veja a documentação: Arrays (Java Platform SE 8 )…-

T

Pelo que entendi, é impossível por um ArrayList. Somente com List mesmo.
Valeu pelas respostas pessoal.

davidbuzatto
Solucao aceita

List é uma interface. ArrayList é uma implementação da interface List. Se vc quer MESMO um ArrayList, isso deve bastar:

List<String> nomes = new ArrayList<>( Arrays.asList("Thiago", "Rose", "Maria") );

ou

ArrayList<String> nomes = new ArrayList<>( Arrays.asList("Thiago", "Rose", "Maria") );
T

Entendi. Valeu david.

Criado 25 de novembro de 2021
Ultima resposta 25 de nov. de 2021
Respostas 7
Participantes 4