Galera alguém pode me orientar nesse programa?

O programa deve ser capaz de calcular a média aritmética simples de um conjunto de números fornecidos como parâmetro. Observação: não há quantidade definida de valores de entrada, portanto o programa deve considerar a possibilidade de receber nenhum ou diversos números.
Obs.: a implementação deve utilizar-se de List e ArrayList
import java.util.Arrays;

public class Principal {

public static void main(String[] args) {
	
			
	        Integer[] numeros = {4, 5, 6, 7};

			
			Media calcularMedia = new Media();
			
			double resultado = calcularMedia.mediaSimples(Arrays.asList(numeros));
			
		}

	


}

import java.util.List;

public class Media {

public static void main(String[] args) {

		public double mediaSimples(List<Integer> valoresEntrada) {
			
			return 0;
		}
	}

}

import java.util.List;

public class Media {
	public double mediaSimples(List<Integer> valoresEntrada) {
        double soma = 0.0;

		if (valoresEntrada.isEmpty()) {	
		    return 0.0;
        }

        for (Integer numero : valoresEntrada) {
              soma += numero;
        }
        
        return soma / valoresEntrada.size();
	}
}
1 curtida

na classe principal como devo fazer ?

A principal fica como está, ou se quiser deixar dinâmico usa um Scanner para ler valores a partir do teclado e depois calcular!

Se quiser fazer da segunda forma dá uma pesquisada em como fazer isso e conforme forem surgindo dúvidas vai postando!

1 curtida

muito obrigado

import java.util.Arrays;
import java.util.Scanner;

public class Principal {

public static void main(String[] args) {
	int numeros;
	Scanner in = new Scanner(System.in);
	System.out.println(" Informe os numeros para calcular a média simples \n");
	numeros = in.nextInt(); 
	// fazer o cálculo usando a classe Media
	Media calcularMedia = new Media();
	
	double resultado = calcularMedia.mediaSimples(Arrays.asList(numeros));
	System.out.println("A média simples de LISTA_VALORES é RESULTADO. " + resultado);

}

}

dessa forma que add o scanner ?

Exato, porém dessa forma ele só irá fazer a leitura de um único número, para ler mais de um você pode incluir um laço de repetição.

Exemplo:

int y = 0;
List<Integer> numeros = new ArrayList<>();
Scanner in = new Scanner(System.in);
      
while (y == 0) {
    System.out.println("Digite um número inteiro: ");     
    int numero = in.nextInt();

    numeros.add(numero);

    System.out.print("Deseja informar mais valores? Digite: 0 para Sim / 1 para Não");  
    y = in.nextInt();
}
1 curtida