Como pesquisar objetos em arraylist

7 respostas Resolvido
java
steniobarroso

Tenho um ArrayList da Classe itemPedido que tem a ClasseProduto e a ClassePedido. Como posso fazer um indexof para achar o id do produto na lista itemPedido.

7 Respostas

M
Solucao aceita

Você pode fazer a pesquisa utilizando o filter:

ItemPedido item = itemPedidos.forEach(itemP -> itemP.getProduto().getId().equals(id)).findFirst().orElse(null);

steniobarroso

Os metodos indexOf e contains não servem?

M

Esses métodos buscam baseado na referência do objeto, que seria o padrão do método equals. Você poderia alterá-lo porém não recomendo que ele seja alterado somente para fazer a pesquisa.

steniobarroso

Eu queria sobrescrever o método equals pois nesse contexto o id do Objeto que vai me dizer se um objeto é igual ao outro. Pois não pode ter dois objeto com mesmo ID.

M

Sim nesse caso faz sentido você sobrescrever o equals. Só que se você fizer isso não há como você procurar os itensPedidos pelo codigo do produto utilizando o método indexOf.
Não sei se ficou claro o que estou dizendo.

steniobarroso

Só dá para procurar pelo id do itensPedido. Entendi

M

Sim, os métodos contains e indexOf, procuram itens baseados do método equals. Caso você precise fazer uma busca através de certos atributos o jeito recomendado é utilizar o filter

Criado 23 de dezembro de 2019
Ultima resposta 23 de dez. de 2019
Respostas 7
Participantes 2