Vetor de ArrayList<Integer> [RESOLVIDO]

7 respostas
Adelar

Olá pessoal,
Somente para matar a curiosidade… Como se faz um vetor de ArrayList<>?
Pensei que a sintaxe poderia ser como a seguir, mas não funciona:
ArrayList[] v= new ArrayList[20];

Gostaria de saber se é possível fazer algo deste tipo. :smiley:

Att.

7 Respostas

davidbuzatto

Adelar:
Olá pessoal,
Somente para matar a curiosidade… Como se faz um vetor de ArrayList<>?
Pensei que a sintaxe poderia ser como a seguir, mas não funciona:
ArrayList[] v= new ArrayList[20];

Gostaria de saber se é possível fazer algo deste tipo. :smiley:

Att.

Não pode.
Entretando, um ArrayList de ArrayList pode:

ArrayList<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>();

[]´s

davidbuzatto

Na verdade pode, o que não pode é usar genéricos...

Isso aqui funciona:
ArrayList[] a = new ArrayList[20];

for ( int i = 0; i < a.length; i++ ) {
    a[i] = new ArrayList<Integer>();
}

[]´s

V
import java.util.ArrayList;

public class ExemploArrayList{
  public static void main(String[] args){
    // cria uma ArrayList que conterá inteiros
    ArrayList<Integer> valores = new ArrayList<Integer>();

    // adiciona itens na lista
    valores.add(34);
    valores.add(12);
    valores.add(8);
    valores.add(23);

    // exibe os valores da lista
    for(int i = 0; i < valores.size(); i++)
      System.out.println(valores.get(i));

    System.exit(0);
  }
}

asssim funciona...
vc estava colocando os valores dentro [] ao inves de ser dentro do ()

abçssss

ViniGodoy

Existe um workaround feio:

ArrayList<Integer>[] myarr = (ArrayList<Integer>[]) Array.newInstance(ArrayList.class, 20);

Mas realmente não é recomendado. Use Lists de Lists como o David mostrou.

E outra coisa. Sempre declare listas a partir da interface:

List<Integer> lista = new ArrayList<Integer>();

Ao invés de:

ArrayList<Integer> lista = new ArrayList<Integer>();
guisantogui

ViniGodoy:
Existe um workaround feio:

ArrayList<Integer>[] myarr = (ArrayList<Integer>[]) Array.newInstance(ArrayList.class, 20);

[/code]

Nossa da onde você tirou essa gambi vinny? :smiley:

Adelar

Valeu pessoal, bom saber que é possível… mas vou sair longe de código deste tipo hehehe

Att.

C

Olá,

estou com um problema parecido:
estou usando um ArrayList dentro de um vetor, para declarar acredito que está tudo ok, o problema está na hr de inserir dentro do arraylist que está dentro do vetor, segue o código:

int tamanho = jTextArea1.getLineCount();
        String vetor[] = jTextArea1.getText().split("\n");
        ArrayList[] hash = new ArrayList[20];
        int x1,x2,x3,pos;
            
        for (int j = 0; j < tamanho; j++) {
            x1 = vetor[j].charAt(0);
            x2 = vetor[j].charAt(1);
            x3 = vetor[j].charAt(2);
            pos = ((x1 + x2 + x3) % 20);
            hash[pos].add(vetor[j]);
        }

está dando o seguinte erro: NullPointerException

Alguém pode me ajudar?
Obrigada

Criado 16 de julho de 2010
Ultima resposta 25 de nov. de 2012
Respostas 7
Participantes 6