Não estou conseguindo resolver esse exercicio

Colete 10 números inteiros de forma aleatória, exibir:

  • média dos números pares;
  • média dos números ímpares;
  • média do grupo;
  • números acima da média do grupo

O que você fez, algum código, quais são suas duvidas, exemplique melhor o exercicio, aqui geralmente tiramos duvidas, até construimos códigos mais precisa melhorar o seu esforço e disponibilizar algo.

mport java.util.ArrayList;
import java.util.Random;

public class Lista {
    private ArrayList<Integer> elementos = new ArrayList<Integer>();

    Lista()
    {
       gerarElementos();
    }

    public ArrayList<Integer> elementos()
    {
        return elementos;
    }

    public double mediaDosNumerosPares()
    {
        ArrayList<Integer> pares = new ArrayList<Integer>();

        for (int i : elementos)
        {
            if (i % 2 == 0)
            {
                pares.add(i);
            }
        }

        return media(pares);
    }

    public double mediaDosNumerosImpares()
    {
        ArrayList<Integer> impares = new ArrayList<Integer>();

        for(int i : elementos)
        {
            if(i % 2 != 0)
            {
                impares.add(i);
            }
        }

        return media(impares);
    }

    public double mediaDosNumeros()
    {
        return media(elementos);
    }

    public ArrayList<Integer> numerosAcimaDaMedia()
    {
        double media = mediaDosNumeros();
        ArrayList<Integer> numerosAcimaDaMedia = new ArrayList<Integer>();

        for(int i : elementos)
        {
            if (i >= media)
            {
                numerosAcimaDaMedia.add(i);
            }
        }

        return numerosAcimaDaMedia;
    }

    private void gerarElementos()
    {
        Random random = new Random();

        for(int i = 0; i < 10; i++)
        {
            elementos.add(Math.abs(random.nextInt()));
        }
    }

    private double media(ArrayList<Integer> lista)
    {
        double soma = 0;
        int total = 0;

        for(int i : lista)
        {
            soma += i;
            total++;
        }

        return soma / total;
    }
}
public class Main {
    public static void main(String... args)
    {
        Lista lista = new Lista();

        System.out.println("Gerando números.");

        System.out.println();
        System.out.println("Os números gerados foram:");

        for(int numero : lista.elementos())
        {
            System.out.print(numero + " ");
        }

        System.out.println();
        System.out.println();
        System.out.printf("A média dos números pares é: %f", lista.mediaDosNumerosPares());

        System.out.println();
        System.out.println();
        System.out.printf("A média dos números ímpares é: %f", lista.mediaDosNumerosImpares());

        System.out.println();
        System.out.println();
        System.out.printf("A média do grupo é: %f", lista.mediaDosNumeros());

        System.out.println();
        System.out.println("Os números acima da média do grupo são:");

        for(int numero : lista.numerosAcimaDaMedia())
        {
            System.out.print(numero + " ");
        }
    }
}