ArrayList como recuperar objeto

12 respostas Resolvido
java
D

Boa tarde Galera tudo bom ?
Criei um arraylist da seguinte forma

listProdutos.add(new Object[] {id,desc,caixa,qtd});

preciso recuperar os objetos mas não estou sabendo como ?
Agradeço a ajuda

12 Respostas

L

Você vai precisar criar um laço (for) dentro de outro laço. Com isso vc conseguirá ler os valores.

D

estou tentando da seguinte forma

produtos.forEach((pro) -> System.out.println(pro) ); mas meu resultado e esse

[Ljava.lang.Object;@14a3a033
[Ljava.lang.Object;@18cb842c
[Ljava.lang.Object;@6c38a896
[Ljava.lang.Object;@c9fabe2
[Ljava.lang.Object;@5b4307a

J

Sobrescreva o método toString da sua classe de produto.

L

Da forma como está fazendo, a variável pro dentro do forEach, é um array de objetos, com isso, você deve iterar sobre ele também:

Long a = 1L, b = 2L;
List<Object[]> produtos = new ArrayList<Object[]>();
produtos.add(new Object[] {a, b});

produtos.forEach(pro -> {
	for(Object obj : pro) {
		System.out.println(obj);
	}
});
S
Solucao aceita

Assim:

for (Object[] array : listProdutos) {
    System.out.println("id:    " + array[0]);
    System.out.println("desc:  " + array[1]);
    System.out.println("caixa: " + array[2]);
    System.out.println("qtd:   " + array[3]);
}

Mas se eu fosse você, ao invés de adicionar arrays de Object na sua lista, eu criaria uma classe Produto com os atributos id, descricao, caixa e quantidade.

D

Fiz da forma que falou mas não compila apresenta o erro for-each not applicable to expression type required array or java.lang.Iterable

D

Tentei desta forma mas não compila acusa o erro que o Objeto nao pode ser convertido para Objeto[ ]

L

Talvez seja a versão do java. Mas, de qualquer forma, faça como o @staroski passou que irá funcionar melhor.

D

Vou seguir a dica do nosso amigo staroski e criar uma classe

G

Crie uma classe e use-a no arraylist. É a forma mais correta.

Dica: crie o método toString da classe produto. :slight_smile: Facilita e muito !

Caso a classe só sirva pra isso, você pode cria-la dentro da própria classe que está sendo usado o array.

S

Então você esqueceu de tipar sua lista com <Object[]> na declaração.

D

Obrigado pessoal Criei um List de produtos para resolver o problema

Criado 28 de março de 2019
Ultima resposta 29 de mar. de 2019
Respostas 12
Participantes 5