Estou com problemas em adicionar objetos ao ArrayList.
Consigo adicionar os objetos mas toda vez que adiciono um objeto novo o objeto anterior é subtituido pelo novo objeto.
No programa exemplo abaixo é gerado três arrays com valores aleatórios que são adicionados ao ArrayList, após adicionar o ultimo array vejo que todos os três arrays estão iguais ao ultimo!
[code]import java.util.ArrayList;
import java.util.Arrays;
public class ProblemaComArrayList {
public static void main(String args[]) {
ArrayList quardaArrayList = new ArrayList();
int array[] = new int[5];
int indexDoArray = 0;
Start(array, quardaArrayList, indexDoArray);
}
public static void Guarda(int array[], ArrayList quardaArrayList,
int indexDoArray) {
Arrays.sort(array);
quardaArrayList.add(array);//Onde foi que eu errei!?
}
public static void Imprimir(int array[], ArrayList quardaArrayList, int indexDoArray) {
int recuperador[] = (int[]) quardaArrayList.get(indexDoArray);
for (int index = 0; index < array.length; index++) {
System.out.print("[" + recuperador[index] + "]");
}
System.out.println(indexDoArray);
}
public static void Gerador(int array[]) {
for (int index = 0; index < array.length; index++) {
array[index] = (1 + (int) (Math.random() * 9));
}
}
public static void Start(int array[], ArrayList quardaArrayList,
int indexDoArray) {
int vezes = 3;
ProblemaComArrayList criar = new ProblemaComArrayList();
for (int index = 0; index < vezes; index++) {
criar.Gerador(array);
criar.Guarda(array, quardaArrayList, indexDoArray);
criar.Imprimir(array, quardaArrayList, indexDoArray);
indexDoArray++;
}
System.out.print("################");
System.out.println();
indexDoArray = 0;
for (int index = 0; index < vezes; index++) {
criar.Imprimir(array, quardaArrayList, indexDoArray);
indexDoArray++;
}
}
}[/code]
Porque o ultimo objeto adicionado ao ArrayList se alto copia para os valores anteriores?