60 lines
1.8 KiB
Java
60 lines
1.8 KiB
Java
import java.util.Hashtable;
|
|
import java.util.Map;
|
|
|
|
public class Frequences<T> {
|
|
public T mostFrequent(T[] tab) {
|
|
Hashtable<T, Integer> indexList = new Hashtable<T, Integer>();
|
|
|
|
for (T element : tab) {
|
|
indexList.put(element, indexList.get(element) == null ? 1 : ((Integer)indexList.get(element)) + 1);
|
|
}
|
|
|
|
T element = tab[0];
|
|
Integer count = indexList.get(tab[0]);
|
|
|
|
for(Map.Entry<T, Integer> entry : indexList.entrySet()) {
|
|
if (entry.getValue() > count) {
|
|
element = entry.getKey();
|
|
count = entry.getValue();
|
|
}
|
|
}
|
|
|
|
return element;
|
|
}
|
|
|
|
public Liste<T> getFrequences(T[] tab) {
|
|
Hashtable<T, Integer> indexList = new Hashtable<T, Integer>();
|
|
|
|
for (T element : tab) {
|
|
indexList.put(element, indexList.get(element) == null ? 1 : ((Integer)indexList.get(element)) + 1);
|
|
}
|
|
|
|
Association<T> lastEntry = null;
|
|
boolean first = true;
|
|
|
|
Liste<T> list = new Liste<T>();
|
|
|
|
for(Map.Entry<T, Integer> entry : indexList.entrySet()) {
|
|
if (first) {
|
|
lastEntry = new Association<T>(entry.getKey(), entry.getValue());
|
|
list.setFirstElement(lastEntry);
|
|
first = false;
|
|
} else {
|
|
Association<T> newEntry = new Association<T>(entry.getKey(), entry.getValue());
|
|
lastEntry.setSuivant(newEntry);
|
|
lastEntry = newEntry;
|
|
}
|
|
}
|
|
|
|
return list;
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
Frequences<String> f = new Frequences<String>();
|
|
|
|
String[] tab = {"test", "test", "test", "12", "12", "12", "12"};
|
|
|
|
System.out.println(f.mostFrequent(tab));
|
|
}
|
|
}
|