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.
Você pode fazer a pesquisa utilizando o filter:
ItemPedido item = itemPedidos.forEach(itemP -> itemP.getProduto().getId().equals(id)).findFirst().orElse(null);
Os metodos indexOf e contains não servem?
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.
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.
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.
Só dá para procurar pelo id do itensPedido. Entendi
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