Cast de ArrayList p/ Object[][]

4 respostas
jason_bourne

Pessoal,

Preciso converter um ArrayList para Object[][] pois para popular um TableModel ele esta esperando um array de objetos. Como faria isso?

4 Respostas

juniormaverick

Veja o exemplo abaixo, acho que resolve seu problema.

public static void main(String[] args) {
		// Cria os Arrays List
		ArrayList<String> ls1 = new ArrayList<String>();
		ls1.add("AA");
		ls1.add("BB");
		ls1.add("CC");
		ls1.add("DD");
		
		ArrayList<String> ls2 = new ArrayList<String>();
		ls2.add("EE");

		ArrayList<String> ls3 = new ArrayList<String>();
		ls3.add("FF");
		ls3.add("GG");
		
		// Cria um ArrayList que contém outro ArrayList
		List<List<String>> al = new ArrayList<List<String>>();
		al.add(ls1);
		al.add(ls2);
		al.add(ls3);
		
		// Gera um array do tamanho da lista
		Object[][] o = new Object[al.size()][];
		int i = 0;

		// Percorre as listas e vai realizando a conversao e atribuindo para o
		// array na possição determinada
		for (List<String> l : al) {
			o[i] = l.toArray();
			i++;
		}
		
	}
jason_bourne

juniormaverick:
Veja o exemplo abaixo, acho que resolve seu problema.

public static void main(String[] args) {
		// Cria os Arrays List
		ArrayList<String> ls1 = new ArrayList<String>();
		ls1.add("AA");
		ls1.add("BB");
		ls1.add("CC");
		ls1.add("DD");
		
		ArrayList<String> ls2 = new ArrayList<String>();
		ls2.add("EE");

		ArrayList<String> ls3 = new ArrayList<String>();
		ls3.add("FF");
		ls3.add("GG");
		
		// Cria um ArrayList que contém outro ArrayList
		List<List<String>> al = new ArrayList<List<String>>();
		al.add(ls1);
		al.add(ls2);
		al.add(ls3);
		
		// Gera um array através da lista
		Object[] o =  al.toArray();
		
		for (Object i : o){
			System.out.println(i);
		}
		
	}

Esse exemplo que vc mandou não serve pois é um array bidimensional e não unidimensional como vc colocou.

juniormaverick

Cara foi mal, olha da maneira que fiz agora, acho que agora sim resolve seu problema.

substitui a seguinte parte

// Gera um array do tamanho da lista
		Object[][] o = new Object[al.size()][];
		int i = 0;

		// Percorre as listas e vai realizando a conversao e atribuindo para o
		// array na possição determinada
		for (List<String> l : al) {
			o[i] = l.toArray();
			i++;
		}
jason_bourne

Consegui resolver fazendo isso:

public Object[][] lista(ProdutoBean entrada) throws SQLException{
        
        ProdutoDao persisteDados = new ProdutoDao();
        Collection retorno = persisteDados.procurar(entrada);
        ArrayList items = (ArrayList) retorno;
        ArrayList dados = new ArrayList();
        
        Object [][] resposta = new Object[retorno.size()][2];  
        
        for (int i = 0; i < retorno.size(); i++) {
           
           ArrayList linhas = new ArrayList();
	   entrada = (ProdutoBean) items.get(i);

           resposta[i][0] = entrada.getNome();
           resposta[i][1] = entrada.getDescricao();
           
        }
      
        return resposta; 
        
        
    }
Criado 4 de março de 2008
Ultima resposta 4 de mar. de 2008
Respostas 4
Participantes 2