List (id, nome ,tipo) como obter o id do List pelo tipo usando java e não BD

Boa noite,

tenho um List com id, nome e tipo como identificar os id de tipo 2 por exemplo sem usar banco de dados.

tentei isso:

      int xprod = prod.getID(prod.getTipo(2));
    System.out.printf("este é o ID %d" , xprod);   

o resultado da zero quando deveria ser seis.

Agradeço uma possível ajuda.

O que esse método getID faz?

Se entendi direito, vc quer filtrar nessa lista todos os produtos que possuem tipo 2, é isso?

sim é só isso como se fosse no Banco de dados mas no Java

porque quero tirar o resultado de uma segunda List que tem id e status de compra, daí quero saber se o tipo 2 foi comprado para estabelecer uma nova categoria de compra onde os produtos de tipo 2 tem que ter sido comprados para formar essa categoria. o getID deveria buscar o id do produto de tipo 2, minha duvida tb é e se tiver mais de um produto tipo dois faz um array de consulta?

Usando for-each:

List<Produto> produtosFiltrados = new ArrayList<>();

for (Produto produto : produtos) {
  if (produto.getTipo().equals(tipo)) {
    produtosFiltrados.add(produto);
  }
}

return produtosFiltrados;

Usando lambda:

return produtos.stream()
  .filter(p => p.getTipo().equals(tipo))
  .collect(Collectors.toList());

funcionou

Muito Obrigado passei o dia tentando resolver

Experimente usar como lambda. Seu código vai ficar bem menor.

public List<Produto> filtrar() {
  return produtosAvenda.stream()
    .filter(p => p.getTipo() == 2)
    .collect(Collectors.toList());
}