Duvida sobre retornar menor idade

boa noite a todos,
vim pedir ajuda para resolver esse programinha.
nao estou conseguindo imprimir a menor idade.
ele tem a funcao de armazenar 5 idades,retornar a media, a maior idade e a menor.
desde ja agradeço.

import java.util.Scanner;//importa a classe util.Scanner
import java.text.DecimalFormat;
import java.io.*;

 class Ex1Vetor {
 	public static void main ( String args [] ){
 		BufferedReader entrada;
 		entrada= new BufferedReader( new InputStreamReader (System.in));
 	
 		//DecimalFormat deci = new DecimalFormat("0.00");
 	
 		int idade [] = new int [5];
 		int maiorid = 0;
 		double media = 0d;
 		int menorid = -1;
 		int soma = 0;
 		int cont = 0;
 	
 	
 		
 	
 	
 	try{
 	
 	 	for (int i = 0; i<idade.length;i++){
					System.out.println("Qual idade ?");
					idade [i] = Integer.parseInt(entrada.readLine());
					soma+= idade[i];
					cont=cont+1;
 	 				
 	 		
 	 				
 	 	
 	 	
 	 		if (maiorid < idade[i] ){
 	 			maiorid = idade[i];
 	 		}else{
 	 		
 	if (idade[i]<maiorid){
 	menorid=idade[i];
 	
 	
 //	if (menorid < maiorid){
 	//		menorid = idade[i];
 		
 	
 		}
 		
 		}
 	
 	}
 	media = soma/cont;
 	System.out.printf("\na media e :\n%s",(media) );
 	
 	System.out.printf("\nA maior idade e :\n%s",maiorid);
 	System.out.printf("\nA menor idade e :\n%s\n",menorid);
 	
 	
 	
 	
 	
 
 	
 		} catch (Exception e){
 			
 				System.out.println("Ocorreu um erro durante a leitura!");
 		}
 	
 	
 	
 	
 	
 	
 		}
 	}

Cara, não sei se é a melhor forma, mas avalia aí.

Abraços.

public class Idade {

	public static void main(String[] args) {
		
		Integer[] idades = new Integer[]{20,50,15,30,45};
		
		// Calcula a média
		Integer soma = 0;
		for (Integer idade: idades) {
			soma += idade;
		}
		Integer media = soma / idades.length;
		
		System.out.println("A média das idades é " + media);
		
		// Maior idade
		Integer maiorIdade = 0;
		for (Integer idade: idades) {
			maiorIdade = Math.max(maiorIdade, idade);
		}
		
		System.out.println("A maior idade é " + maiorIdade);
		
		
		// Menor idade
		Integer menorIdade = 0;
		for (Integer idade: idades) {
			if (menorIdade == 0) {
				menorIdade = idade;
			}
			menorIdade = Math.min(menorIdade, idade);
		}
		
		System.out.println("A menor idade é " + menorIdade);
	}
}

bom,desse jeito o resultado ja sai direto.porem o usuario e que vai inserir os dados.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Idade {

	public static void main(String[] args) {
		
		BufferedReader entrada;  
		         entrada= new BufferedReader(new InputStreamReader(System.in));
		
	    String line = "";
	    List<Integer> idades = new ArrayList<Integer>(); 
	    
	    int count = 1;
		try {
			while (count <= 5) {
				line = entrada.readLine();
				try {
					idades.add(Integer.parseInt(line));
                                        count++;
				}catch(NumberFormatException e) {
					System.out.println("Você deve digitar um inteiro válido");
				}
				
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
				
		// Calcula a média
		Integer soma = 0;
		for (Integer idade: idades) {
			soma += idade;
		}
		Integer media = soma / idades.size();
		
		System.out.println("A média das idades é " + media);
		
		// Maior idade
		Integer maiorIdade = 0;
		for (Integer idade: idades) {
			maiorIdade = Math.max(maiorIdade, idade);
		}
		
		System.out.println("A maior idade é " + maiorIdade);
		
		
		// Menor idade
		Integer menorIdade = 0;
		for (Integer idade: idades) {
			if (menorIdade == 0) {
				menorIdade = idade;
			}
			menorIdade = Math.min(menorIdade, idade);
		}
		
		System.out.println("A menor idade é " + menorIdade);
	}
}

Aproveitando que estou esperando os amigos de copo, dei uma refatorada na solução:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Idade {

	public static void main(String[] args) {
		
		List<Integer> idades = capturaDados();
		
		System.out.println("A média das idades é " + calculaMedia(idades));
		System.out.println("A maior idade é " + calculaMaiorIdade(idades));
		System.out.println("A menor idade é " + calculaMenorIdade(idades));
	}
	
	private static List<Integer> capturaDados() {
		// Captura os dados
		BufferedReader entrada;  
		         entrada= new BufferedReader(new InputStreamReader(System.in));
		
	    String line = "";
	    List<Integer> idades = new ArrayList<Integer>(); 
	    
	    int count = 1;
		try {
			while (count <= 5) {
				line = entrada.readLine();
				try {
					idades.add(Integer.parseInt(line));
					count++;
				}catch(NumberFormatException e) {
					System.out.println("Você deve digitar um inteiro válido");
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return idades;
	}
	
	private static Integer calculaMedia(List<Integer> idades) {
		Integer soma = 0;
		for (Integer idade: idades) {
			soma += idade;
		}
		
		return soma / idades.size();
	}
	
	private static Integer calculaMaiorIdade(List<Integer> idades) {
		Integer maiorIdade = 0;
		for (Integer idade: idades) {
			maiorIdade = Math.max(maiorIdade, idade);
		}
		
		return maiorIdade;
	}
	
	private static Integer calculaMenorIdade(List<Integer> idades) {
		Integer menorIdade = 0;
		for (Integer idade: idades) {
			if (menorIdade == 0) {
				menorIdade = idade;
			}
			menorIdade = Math.min(menorIdade, idade);
		}
		
		return menorIdade;

	}
}

meu amigo,mutio obrigado…
agora vou tentar passar para a minha lingujagem, ja q ainda sou iniciante em java,
um grande abç