Object[][] para array list e array list para object[][]

4 respostas
D

Quero fazer uma arrayList para armazenar objetos[][];
Depois de armazenálos quero criar uma um object[][] para conter o conteúdo o array.

O código seria mais ou menos esse:

ArrayList<Object> objArray = new ArrayList<Object>();
Object objeto[][] = new Object[1][6];
objeto[0][0]="um";
:
objeto[0][5]="seis";
objArray.add(objeto);

objeto[0][0]="A";
:
objeto[0][5]="F";
objArray.add(objeto);

Object returnObj[][] = new Object[objArray.size()][6];

como eu faço para o objeto returnObj conter o conteúdo de objArray?

tentei objArray.toArray(returnObj) mas não funcionou

alguém tem alguma idéia ou dica?

Obrigado.

4 Respostas

felipealbuquerque

Pelo que eu entendi, você quer guardar um array bidimensional em uma List, correto?

Eu faria assim:

List<List<Object>> toList(Object[][] array) {
    List<List<Object>> listaPrincipal = null;
    List<Object> listaSecundaria = null;
		
    listaPrincipal = new ArrayList<List<Object>>();
		
    for (int i = 0; i < array.length; i++) {
        listaSecundaria = new ArrayList<Object>();

        for (int j = 0; j < array[i].length; j++) {
            listaSecundaria.add(array[i][j]);	
        }

        listaPrincipal.add(listaSecundaria);
    }

    return listaPrincipal;
}

Para utilizar:

Object[][] array = new Object[1][6];
array[0][0] = "um";
array[0][1] = "dois";
array[0][2] = "três";
array[0][3] = "quatro";
array[0][4] = "cinco";
array[0][5] = "seis";
		
List<List<Object>> lista = toList(array);

Assim você cria uma estrutura de bidimensional.

Marky.Vasconcelos

Ou então ao invés de arrays bidimensionais você usa listas bidimencionais

malves_info

Bom pelo o que eu entendi ele quer migrar os dados que estão em objArray para returnObj, acho que esse exemplo pode resolver:

Object[][] dados = new Object[objArray.size()][6];
		for(int i=0; i < objArray.size(); i++){
			dados = (Object[][])objArray.get(i);

Testa ae Brother…

sergiotaborda

ddrogba:
Quero fazer uma arrayList para armazenar objetos[][];
Depois de armazenálos quero criar uma um object[][] para conter o conteúdo o array.

O problema no seu codigo é que está criando listas de Object quando o que vc quer é listas de Object[]

List<Object[]> objArray = new ArrayList<Object[]>();
Object objeto[][] = new Object[1][6];
objeto[0][0]="um";
:
objeto[0][5]="seis";
objArray.add(objeto);

objeto[0][0]="A";
:
objeto[0][5]="F";
objArray.add(objeto);

Object[] returnObj = objArray.get(0);

A dica é : não use Object[][] crie uma classe Matriz. Ai será muito mais simples escrever o codigo

Criado 16 de dezembro de 2007
Ultima resposta 17 de dez. de 2007
Respostas 4
Participantes 5