--- /dev/null
+package de.juplo.kafka.wordcount.top10;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+
+
+@Getter
+@Setter
+public class Ranking
+{
+ private Entry[] entries = new Entry[0];
+
+ public void add(Entry newEntry)
+ {
+ if (entries.length == 0)
+ {
+ entries = new Entry[1];
+ entries[0] = newEntry;
+ return;
+ }
+
+ List<Entry> list = new LinkedList<>(Arrays.asList(entries));
+ for (int i = 0; i < list.size(); i++)
+ {
+ Entry entry;
+
+ entry = list.get(i);
+ if (entry.getCount() <= newEntry.getCount())
+ {
+ list.add(i, newEntry);
+ for (int j = i+1; j < list.size(); j++)
+ {
+ entry = list.get(j);
+ if(entry.getWord().equals(newEntry.getWord()))
+ {
+ list.remove(j);
+ break;
+ }
+ }
+ if (list.size() > 10)
+ {
+ list = list.subList(0,10);
+ }
+ entries = list.toArray(num -> new Entry[num]);
+ return;
+ }
+ }
+ }
+}