codice:
int[] numeri = new int[] {5, 4, 4, 3, 3, 3, 2, 8, 8};//il tuo array di partenza
Map<String, Integer> map = new HashMap();
for(int i = 0; i < numeri.length; i++) {
Integer count = map.get(""+numeri[i]);
count = count != null ? new Integer(count.intValue()+1) : new Integer("1");
map.put(new Integer(numeri[i]), count);
}
Iterator<Entry<String, Integer>> iter = map.getEntrySet().getIterator();
int max = 0;
String numero = null;
while(iter.hasNext()) {
Entry<String, Integer> e = iter.next();
if(e.getValue() > max) {
max = e.getValue().intValue();
numero = e.getKey();
}
}
System.out.println("il valore col maggior numero di ripetizioni (" + max + ") e\' " + numero);
In questo caso se ci sono piu' valori con lo stesso numero di ripetizioni, indica solo il primo di questi numeri. Volendo puoi modificarlo in modo che sia possibile piu' di un risultato.
P.S. non l'ho controllato ne' provato... chiedo perdono x eventuali errori :P