1 package de.juplo.kafka.wordcount.top10;
5 import java.util.Arrays;
6 import java.util.LinkedList;
10 @AllArgsConstructor(access = AccessLevel.PRIVATE)
15 public final static int MAX_ENTRIES = 10;
18 private Entry[] entries = new Entry[0];
20 public Ranking add(Entry newEntry)
22 if (entries.length == 0)
24 entries = new Entry[1];
25 entries[0] = newEntry;
29 List<Entry> list = new LinkedList<>(Arrays.asList(entries));
30 for (int i = 0; i < list.size(); i++)
35 if (entry.getCounter() <= newEntry.getCounter())
37 list.add(i, newEntry);
38 for (int j = i+1; j < list.size(); j++)
41 if(entry.getWord().equals(newEntry.getWord()))
47 if (list.size() > MAX_ENTRIES)
49 list = list.subList(0, MAX_ENTRIES);
51 entries = list.toArray(num -> new Entry[num]);
59 public static Ranking of(Entry... entries)
61 return new Ranking(entries);