[英]Enum used as key in TreeMap not sorted after adding
我正在使用TreeMap,其中键是枚举,值是整数。
TreeMap<Ingredient, Integer> inv;
public Inventory(){
inv = new TreeMap<Ingredient, Integer>();
inv.put(Ingredient.COFFEE, 10);
inv.put(Ingredient.DECAF_COFFEE, 10);
// and so on
}
成分类定义为
public enum Ingredient {
COFFEE {
public double getCost() {
return 0.75;
}
@Override
public String toString() {
return "Coffee";
}
},
DECAF_COFFEE {
public double getCost() {
return 0.75;
}
@Override
public String toString() {
return "Decaf Coffee";
}
},
// 等等
但是,当我在添加所有成分之后迭代树图时,枚举键不是按字典顺序打印的。
如果不是枚举,而是我要实现compareto的类,我可以为枚举做类似的事情吗?
枚举已经实现Comparable 。 它使用定义枚举常量的顺序,但是可悲的是您不能覆盖compareTo
方法来实现字典顺序,因为它被定义为final
。
但是您可以将自定义Comparator 传递给TreeMap
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.