Erhm... Why do you need the keys in that order? I suppose you
could write a comparator that specifically compares them to go in that order, but that seems like a rather round about way. If you need to access the keys in that order, why not just access the keys in that order? You could make an array
final
String[] KEYS = {"USD","CAD"...};, and then when accessing elements in the map just iterate through KEYS. Or, perhaps the most elegant solution of all would be to just make a class Currency, which would have a String and an int (and whatever else you want). you would then say
final Currency USD=new Currency("USD",1);
and then the comparator would just go by the int, thus ordering these as keys.