Exercício ArrayList em Java

A ideia é criar um programa que o usuário coloca quantas datas de nascimento quiser e o programa calcula a idade e mostra o mais velho, o mais novo e a media entre idades.

Fiz uma parte mas estou com dificuldade na parte das listas, consigo imprimir somente o ultimo número que o usuário colocou …

Meu código:

package application;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;


public class Program {

	public static void main(String[] args) throws ParseException {

		Calendar cal = Calendar.getInstance();
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		Scanner sc = new Scanner(System.in);

		ArrayList<Date>list = new ArrayList<Date>();

		System.out.println("Quantos funcionários serão registrados?");
		int N = sc.nextInt();

		for (int i = 0; i < N; i++) {
			System.out.println("Funcionários #" + (i + 1) + ":");
			System.out.print("Name: ");
			sc.next();
			String name = sc.nextLine();
			System.out.println("Data de nascimento: ");
			Date nasc = sdf.parse(sc.next());
			cal.setTime(nasc);
			
			
			list.add(nasc);

			int year = cal.get(Calendar.YEAR);
			Date atualData = new Date();
			cal.setTime(atualData);
			int atualYear = cal.get(Calendar.YEAR);
			int idade = (atualYear - year) - 1;
			
			System.out.println(idade);
		    }
		sc.close();
		  }
}

A lista precisa ser de Date? Podia guardar só a idade na lista.
Chamar sort() nela e no final iterar para fazer a média.

Seria até possível usando Stream API.

Obrigado pela resposta.

Infelizmente precisa ser em Date

Faz o sort de qualquer forma:

//ordem natural
list.sort(Comparator.naturalOrder());

Primeiro elemento:

list.get(0);

Último elemento:

list.get(list.size() - 1);
2 curtidas