我正在使用TreeMap,其中key是枚举,值是整数。
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
}
Ingredient类定义为
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";
}
},
//等等
但是,当我在添加所有成分后迭代树形图时,枚举键不会按字典顺序打印。
如果不是枚举它是一个我将实现比较的类,我可以为枚举做类似的事情吗?
答案 0 :(得分:5)
Enum已实施Comparable。它使用枚举常量定义的顺序,但遗憾的是你不能覆盖compareTo
- 方法来实现字典排序,因为它被定义为final
。
但您可以pass TreeMap
EmptyView
自定义Comparator。