java – ¿Cómo obtener los elementos menores al promedio?

Tengo el siguiente programa:

public class Suma {
    
    private static int suma = 0;

    public static void main(String() args) {
        
        //var nums = List.of(3, 9, 7, 12, 20, 4, 11, 9, 21, 6, 8, 10);
        int() nums = {3, 9, 7, 12, 20, 4, 11, 9, 21, 6, 8, 10};
        System.out.println(average(nums, 0));
    }
    
    public static float average(int n(), int pos){
        if(pos < n.length) {
            suma = suma + n(pos);
            average(n, pos + 1);
        }
        return (float)suma /(float)n.length;
    }
}

Que me permite obtener los siguientes resultados:

  • Suma de los elementos del Array
  • Número de elementos en el Array
  • Resultado División(Promedio).

Cómo puedo imprimir estos datos pero filtrando los elementos para obtener los elementos que son menores al promedio, sin utilizar ciclos repetitivos.