FrequencyEntry getEntry(String key) { for (FrequencyEntry fe : entries) { if (fe.getKey().equals(key)) { return fe; } } return null; }
List<ChartCategory> getCategories() { List<ChartCategory> map = new ArrayList<ChartCategory>(); for (FrequencyEntry fe : getEntries()) { ChartCategory cat = new ChartCategory<String>(fe.getKey()); map.add(cat); } return map; }
long getMax() { long max = Integer.MIN_VALUE; for (FrequencyEntry fe : this.getEntries()) { if (fe.getFrequency() > max) { max = fe.getFrequency(); } } return max; }
/** * LogY flag indicates that the log of each value will later be taken. This should be used for * "show original frequencies" in order to get an accurate difference (as it is stacked on top of * current frequencies). Do not use otherwise. */ static ChartFrequencyMap subtract(ChartFrequencyMap map1, ChartFrequencyMap map2, boolean logY) { ChartFrequencyMap result = new ChartFrequencyMap(); for (FrequencyEntry fe1 : map1.entries) { FrequencyEntry fe2 = map2.getEntry(fe1.getKey()); if (fe2 == null) { result.addEntry(fe1.getKey(), fe1.getFrequency()); } else if (logY) { result.addEntry( fe1.getKey(), (long) (Math.pow(10, Math.log10(fe1.getFrequency()) - Math.log10(fe2.getFrequency())))); } else { result.addEntry(fe1.getKey(), fe1.getFrequency() - fe2.getFrequency()); } } return result; }