Eu sei que tenho que fazer uma variável pra armazenar esses valores porém eu não consigo pegar na lista
double soma = 0;
for (Produto produto : listaDeProdutos) {
soma += produto.getValor();
}
double media = soma / (double) listaDeProdutos.size();
Tá deu certo, mas aí eu quero pegar o menor valor dos produtos e o maior
double soma = 0.0;
//calculando a média dos valores
for (Produtos produtos : p) {
soma += produtos.getValor();
}
double media = soma / (double) p.size();
System.out.println("Valor mínimo: R$ "+ " Valor máximo: R$ "+ " Valor médio: R$ "+ media);
o valor médio já foi, agr eu queria fazer algo perecido com isso, só que com o valor menor e o maior
Ué, cria uma variável para o maior valor e outra pro menor, dentro do laço você vai comparando o valor atual da iteração.
Outra alternativa utilizando a API Streams.
List<Produto> produtos = Arrays.asList(new Produto(10), new Produto(15), new Produto(8), new Produto(120), new Produto(100));
// media
OptionalDouble media = produtos.stream().mapToDouble(Produto::getValor).average();
if (media.isPresent()) {
System.out.println(media.getAsDouble());
}
// menor
OptionalDouble min = produtos.stream().mapToDouble(Produto::getValor).min();
if (min.isPresent()) {
System.out.println(min.getAsDouble());
}
// maior
OptionalDouble max = produtos.stream().mapToDouble(Produto::getValor).max();
if (max.isPresent()) {
System.out.println(max.getAsDouble());
}
thanks for the awesome information.
thanks my issue has been fixed.