Calcular elementos do ArrayList

Boa tarde,
fiz um programa em java, utilizando um ArrayList, aonde o usuário recebe 4 números aleatórios e deve informar o menor número para que ele seja descartado, e depois gostaria que o programa calculasse a média dos três números restantes. Mas não sei como fazer, segue o programa abaixo:

import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

public class teste {

 public static void main(String [] Args) {
 
     String[] d4 = {"1","2","3","4"};
		String[] d6 = {"1","2","3","4","5","6"};
		String[] d8 = {"1","2","3","4","5","6","7","8"};
		String[] d10 = {"1","2","3","4","5","6","7","8","9","10"};
		String[] d100 = {"00","10","20","30","40","50","60","70","80","90"};
		String[] d12 = {"1","2","3","4","5","6","7","8","9","10","11","12"};
		String[] d20 = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"};
	    
		Random r = new Random();
		int nd4 = r.nextInt(d4.length);
		int nd6 = r.nextInt(d6.length);
		int nd8 = r.nextInt(d8.length);
		int nd10 = r.nextInt(d10.length);
		int nd100 = r.nextInt(d100.length);
		int nd12 = r.nextInt(d12.length);
		int nd20 = r.nextInt(d20.length);
		
		int x1 = r.nextInt(d6.length);
		int x2 = r.nextInt(d6.length);
		int x3 = r.nextInt(d6.length);
		int x4 = r.nextInt(d6.length);
		
		String y1 = d6[x1];
		String y2 = d6[x2];
		String y3 = d6[x3];
		String y4 = d6[x4];
		
		ArrayList<String>habilidades = new ArrayList<>();
		habilidades.add(y1);
		habilidades.add(y2);
		habilidades.add(y3);
		habilidades.add(y4);
		
		
		System.out.println(habilidades.toString());
		System.out.println("Escolha o menor valor e indique a posicao que ele se encontra.");
        Scanner s = new Scanner(System.in);
		int numero = s.nextInt();
		int t = numero-1;
		habilidades.remove(t);
		System.out.println(habilidades.toString());
	    
 }

}

Se você ta usando Array[] não utilize ArrayList, quase que não conheço metodos do ArrayList para fazer isso. Não dá para fazer verificações com IFs dentro de um loop usando ArrayList.

Melhor você usar o Array[] mesmo, e faça com menos numeros, com tres primeiramente, depois que você entender bem como faz, você passa para quantidades maiores.
Exemplo simples:

import java.util.Scanner;

public class Array {
            
        public static int maiorNumero (int num1, int num2){ 
          int i, maior=0;
	  for (i=0;i <5;i++)
             if (num1 > maior)
		    maior = num2;
	  return maior;
	}
    
    public static void main(String[] args) {
        int numero1;
        int numero2;
        Scanner entrada = new Scanner(System.in);
        System.out.println("Numero 1");
        numero1 = entrada.nextInt();
        System.out.println("Numero 2");
        numero2 = entrada.nextInt();
        
        int maior = Array.maiorNumero(numero1,numero2);
        System.out.println("O maior numero é: "+maior);

      
        }
          
    }

Fala @bdsp é o seguinte o que VC fez cancela, segue esse algoritmo que vou te passar que eu fiz

Programa EncontrarMenorECalcularMedia
 Inicio
 x:inteiro;
 num:inteiro;
 tmp: inteiro;
 Vet:vetor[0..3] de inteiro;
 K:inteiro;
 Tmp<-0
 Para x  de 0 ate 4 passo 1 faca
     leia(num);
     Se tmp = 0 faca
      tmp<-num;
     senao se num < tmp faca
       tmp<- num
     Senao
       vetor[k+1]<-num;
     Fim_se


    Fim_para
    K<-0;
   Escreva("menor"+tmp);
   Para k de 0 ate vetor->tamanho passo 1 faca
      Total<-Vetor[k]+total;
   Fim_para
   Media<-total/vetor.tamanho;
   Escreva("media"+media);

 Fim