Vetor de ArrayList<Integer> [RESOLVIDO]

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.

[quote=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.[/quote]

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

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

[]´s

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

Isso aqui funciona:

[code]ArrayList[] a = new ArrayList[20];

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

[]´s

[code]
import java.util.ArrayList;

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

// 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);

}
}[/code]

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

abçssss

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>();

[quote=ViniGodoy]Existe um workaround feio:

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

[/code][/quote]

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

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

Att.

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