Revision: 3095
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at June 3, 2007 12:33 by thebugslayer
Initial Code
import java.util.*;
//
// Groovy version of "Sort keys by values" is:
// keys.sort{ lang[it] }
// That's one line replacement!!!
//
class MapSort {
public static void main(String[] args){
Map lang = new HashMap();
lang.put(0, "Java");
lang.put(1, "Groovy");
lang.put(2, "Ruby");
lang.put(3, "Python");
lang.put(4, "C#");
lang.put(5, "C++");
lang.put(6, "Perl");
List keys = new ArrayList(lang.keySet());
//Sort keys by values.
final Map langForComp = lang;
Collections.sort(keys,
new Comparator(){
public int compare(Object left, Object right){
Integer leftKey = (Integer)left;
Integer rightKey = (Integer)right;
String leftValue = (String)langForComp.get(leftKey);
String rightValue = (String)langForComp.get(rightKey);
return leftValue.compareTo(rightValue);
}
});
//List the key value
for(Iterator i=keys.iterator(); i.hasNext();){
Object k = i.next();
System.out.println(k + " " + lang.get(k));
}
}
}
Initial URL
Initial Description
This demonstrate the expressiveness of Groovy vs Java.
Initial Title
Sorting map keys by comparing it's values
Initial Tags
groovy
Initial Language
Java