Ejemplo de ArrayList en Java


Ejemplo de uso de un ArrayList:
Programa Java que pida por teclado las alturas de N alumnos de una clase y las guarde en un ArrayList de tipo Double. A continuación el programa calculará cuantos alumnos hay más altos que la media y cuantos más bajos.
Para resolverlo vamos a utilizar 4 métodos además del método main:
Método numeroAlumnos(): este método pide por teclado el número de alumnos de la clase y devuelve dicho número al programa principal.
Método leerAlturas(): pide por teclado las alturas de los N alumnos y las almacena en el ArrayList. Este método recibe como parámetros el ArrayList inicialmente vacío y el número de alumnos a leer.
Método calcularMedias(): calcula y devuelve la media de los alumnos de la clase. Este método recibe como parámetro el ArrayList con las alturas de todos los alumnos.
Método mostrarResultados(): muestra por pantalla todas las alturas y calcula y muestra el número de alumnos con altura superior e inferior a la media. Recibe como parámetros el ArrayList con las alturas de todos los alumnos y la media calculada anteriormente.
Solución:
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

   public static void main(String[] args) {
      //creamos el ArrayList que contendrá la altura de los alumnos
      ArrayList<Double> altura = new ArrayList();
      int N;
      double media;
      //obtenemos el número de alumnos de la clase
      N = numeroAlumnos();
      //leemos la altura de los N alumnos
      leerAlturas(altura, N);
      //calculamos la media
      media = calcularMedia(altura);
      //mostramos los resultados
      mostrarResultados(altura, media);
   }

   //Método para pedir por teclado el número de alumnos de la clase
   public static int numeroAlumnos() {
      Scanner sc = new Scanner(System.in);
      int n;
      do {
            System.out.print("Introduce número de alumnos: ");
            n = sc.nextInt();
      } while (n < 1);
      return n;
   }

   //Este método recibe el ArrayList y el número de alumnos de la clase
   //Pide por teclado la altura de todos los alumnos y las guarda en el ArrayList
   public static void leerAlturas(ArrayList<Double> a, int n) {
      Scanner sc = new Scanner(System.in);
      int i;
      double alto;
      for (i = 1; i <= n; i++) {
           do {
                 System.out.print("Alumno " + i + " altura: ");
                 alto = sc.nextDouble();
           } while (alto <= 0);
           a.add(alto); //añade la altura al final del ArrayList
      }
  }

   //Este método recibe el ArrayList con todas las alturas
   //calcula y devuelve la media
   public static double calcularMedia(ArrayList<Double> a) {
      double media = 0;
      for (Double d : a) {
            media = media + d;
      }
      return media / a.size();
   }

   //Muestra la altura de todos los alumnos, la media y calcula y muestra
   //cuantos alumnos hay con altura superior a la media
   //y cuántos con altura inferior
   public static void mostrarResultados(ArrayList<Double> a, double media) {
      int superior = 0, inferior = 0;
      System.out.println("alturas introducidas: ");
      System.out.println(a);
      for (Double d : a) {
            if (d > media)
                superior++;
            else if (d < media)
                       inferior++;
      }
      System.out.printf("Media: %.2f %n", media);
      System.out.println("Hay " + superior + " alumnos más altos que la media");
      System.out.println("Hay " + inferior + " alumnos más bajos que la media");
   }
}

1 comentario:

  1. public static void main(String[] args) {
    // TODO Auto-generated method stub

    int N =numeroAlumnos();
    System.out.println("Se ingresaron "+N+" Alumnos");
    ArrayList altAlum = new ArrayList(N);
    leerAlturas(altAlum, N);
    System.out.println(calcularMedias(altAlum));
    }

    private static double calcularMedias(ArrayList altAlum) {
    // TODO Auto-generated method stub
    double media = 0;
    for (Double d : altAlum) {
    media = media + d;
    }
    return media / altAlum.size();
    }

    private static void leerAlturas(ArrayList altAlum, int n) {
    // TODO Auto-generated method stub

    for (int i = 0; i < n; i++) {
    double alto = Double.parseDouble(JOptionPane.showInputDialog("Introduzca la altura del alumno"));
    altAlum.add(alto);
    }
    }

    private static int numeroAlumnos() {
    // TODO Auto-generated method stub
    int numAlum=Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero de alumnos a medir"));
    return numAlum;
    }

    ResponderEliminar