Javap
Fevereiro 2, 2022, 1:12am
#1
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?
Javap
Fevereiro 2, 2022, 1:36am
#3
sim é só isso como se fosse no Banco de dados mas no Java
Javap
Fevereiro 2, 2022, 1:44am
#4
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());
Javap
Fevereiro 2, 2022, 2:53am
#6
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());
}