import java.util.TreeMap;
public class SelectedSorted {
TreeMap<String, Integer> wordsCounter = new TreeMap<String, Integer>();
public SelectedSorted(TreeMap<String, Integer> wordsCounter) {
this.wordsCounter = wordsCounter;
}
public void selectedSorted() {
// die häufigsten 10 Wörter herausfinden:
final String[] mostCommonWords = new String[10];
final int[] numberOfOccurences = new int[10];
for (int i = 0; i < mostCommonWords.length; i++) {
/*
* diese beiden Variablen bilden nach durchlauf der nächsten
* for-Schleife ein Wertepaar, das den nächsten Platz an der TOP10
* belegt, indem sie immer mit dem höchsten Wert gefüllt werden.
*/
int bisherigesMaximum = 0;
String wortMitMaximum = null;
for (final String str : wordsCounter.keySet()) {
if (wordsCounter.get(str) > bisherigesMaximum) {
// testen, ob dieses Wort schon berücksichtigt wurde
if (!arrayContainsString(str, mostCommonWords)) {
bisherigesMaximum = wordsCounter.get(str);
wortMitMaximum = str;
}
}
}
mostCommonWords[i] = wortMitMaximum;
numberOfOccurences[i] = bisherigesMaximum;
}
// Die Ausgabe des Ergebnisses
System.out.println("Die 10 häufigsten Wörter im Text sind:");
for (int i = 0; i < mostCommonWords.length; i++) {
System.out.println(mostCommonWords[i] + " ("
+ numberOfOccurences[i] + " mal)");
}
}
/**
* Testet, ob der String toTest im Array array vorkommt.
*
* @return true, wenn der String toTest in array enthalten ist, ansonsten
* false
*/
private static boolean arrayContainsString(final String toTest,
final String[] array) {
for (final String str : array) {
if (str != null && str.equals(toTest)) {
return true;
}
}
return false;
}
}