Ayuda Java Moda en arreglo


24 de Noviembre del 2019

Tengo que hacer que se calcule  la moda de un arreglo en decimales elegidos al azar ya tengo el arreglo pero no entiendo muy bien que pasa con la moda. Si me pueden ayudar muchisimas gracias.

Este es mi codigo (no esta completo tadavia faltan partes), y si me pueden dar su opinion lo agardeceria: 



public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Random rnd= new Random();

double rpt;
double mrv=0;
double moda=0;
double media = 0;
double desest;
double var=0;
double sum=0,pot=0;
int sal;
String ped ;

double num [] = new double [20];
double n;
double cntmd[]=new double [100];

for(int j=0;j<20;j++)
{
n= (double)(rnd. nextDouble()*10) ;
num[j]=n;
num[j]++;
}
System.out.print(Arrays.toString(num)+""); //matriz en double (cMBIARLA)

for (int i=0;i<20;i++)//
{
sum+=num[i];
media=(sum/20);
for (int j=0;j<20;j++)//
{
pot+=Math.pow(num[i]-media,2);
var+=pot;
}
}
var/=(19);
desest=Math.sqrt(var);


for (int i = 0; i < 20; i++)
{

rpt = 0;
for (int j = 0; j < 20; j++)
{
if (num[i] == num[j])
{
rpt++;
}

if (rpt > mrv)
{
moda = num[i];
}
else
{
moda=0;
}
}
}

do
{

ped = JOptionPane.showInputDialog("Por favor indique que desea calcular la 'moda' 'mediana' 'media' o la 'desviacion estandar' ");

switch(ped)
{
case "moda":
if(moda==0)
{
System.out.println("nNo hay moda");
}
else
{
System.out.println("nLa moda es : "+ moda+" Y se repitio:"+ mrv);
}
break;
case "mediana":


break;
case "media":

System.out.print("nLa media es: " + media);

break;
case "desviacion estandar":
System.out.println("nLa desviacion estandar es: " +desest);
break;
}

String slr = JOptionPane.showInputDialog("Desea algo mas? 'si' o 'no' ");
if(slr.equals("si"))
{
sal=1;
}
else
{
sal=0;
}
}while(sal>0);

}