Boa noite,
O código funciona perfeitamente para calculo de moda. No caso a moda são os numeros que mais se repetem no vetor. No caso meu vetor está retornado os numeros que repetem e a quantidade de vezes. Como faço para meu vetor so retornar os numeros com maior numero de repetição?
Por exemplo: Atualmente: a - Entrada: 2,2,1,1,6 saída: 22 11 Como gostaria: a - Entrada: 2,2,1,1,6 saída: 2,1
package teste;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class teste {
public static void main(String argumentos[]){
Integer []a = {2,2,1,1,6};
System.out.println("mODA: ");
System.out.println();
Integer[] result = mode(a);
for(int i = 0; i< result.length;i++) {
System.out.print(result[i]);
}
}
public static Integer[] mode(Integer[] a){
List<Integer> modes = new ArrayList<Integer>( );
int maxCount=0;
for (int i = 0; i < a.length; ++i){
int count = 0;
for (int j = 0; j < a.length; ++j){
if (a[j] == a[i])
++count;
}
if (count > maxCount){
maxCount = count;
modes.clear();
modes.add( a[i] );
} else if ( count == maxCount ){
modes.add( a[i] );
}
}
return modes.toArray( new Integer[modes()]);
}
private static int modes() {
// TODO Auto-generated method stub
return 0;
}
}