From: <jbo...@li...> - 2005-11-22 18:25:07
|
Author: aron.gombas Date: 2005-11-22 13:24:36 -0500 (Tue, 22 Nov 2005) New Revision: 1620 Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/util/ChartUtils.java Log: Ordering is not only by Int-value, but also by String-key as secondary Modified: trunk/labs/kosmos/src/java/hu/midori/kosmos/server/util/ChartUtils.java =================================================================== --- trunk/labs/kosmos/src/java/hu/midori/kosmos/server/util/ChartUtils.java 2005-11-22 18:22:51 UTC (rev 1619) +++ trunk/labs/kosmos/src/java/hu/midori/kosmos/server/util/ChartUtils.java 2005-11-22 18:24:36 UTC (rev 1620) @@ -134,11 +134,18 @@ public static List intValuedMapToSortedList(Map map) {// TODO should be Map<?, Integer> and List<Map.Entry<?, Integer>> List<Map.Entry> sorted = new ArrayList<Map.Entry>(map.entrySet()); Collections.sort(sorted, new Comparator() {// TODO should be Comparator<Map.Entry<?, Integer>> - public int compare(Object o1, Object o2) { - Integer v1 = (Integer)((Map.Entry)o1).getValue(); - Integer v2 = (Integer)((Map.Entry)o2).getValue(); + public int compare(Object obj1, Object obj2) { // revert-compare for descending order - return v2.compareTo(v1); + Integer value1 = (Integer)((Map.Entry)obj1).getValue(); + Integer value2 = (Integer)((Map.Entry)obj2).getValue(); + int comparison = value2.compareTo(value1); + if(comparison != 0) + return comparison; + + // compare keys in ascending order for identical-valued entries + String key1 = (String)((Map.Entry)obj1).getKey(); + String key2 = (String)((Map.Entry)obj2).getKey(); + return key1.compareTo(key2); } }); |