Pessoal,
Preciso converter um ArrayList para Object[][] pois para popular um TableModel ele esta esperando um array de objetos. Como faria isso?
Pessoal,
Preciso converter um ArrayList para Object[][] pois para popular um TableModel ele esta esperando um array de objetos. Como faria isso?
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++;
}
}
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.
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++;
}
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;
}