使用比较器:
在Enum类的定义中已经实现好了Comparable接口,所以枚举类的内容本身是可以进行排序的。
public class ComparableEnum {
public static void main(String[] args) {
//TreeSet可以直接进行排序,排序的规则是通过Comparable接口完成的。
Set<Color> set = new TreeSet<Color>();
set.add(Color.GREEN);
set.add(Color.BLUE);
set.add(Color.RED);
Iterator<Color> it = set.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}
enum Color{
RED, GREEN, BLUE;
}
使用枚举实现接口
和普通 Java 类一样,枚举类可以实现一个或多个接口。
若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法。
public class InterfaceEnumDemo {
public static void main(String[] args) {
for(Color c : Color.values()){
System.out.print(c.getColor() + " ");
}
}
}
interface Print{
public String getColor();
}
enum Color implements Print{
RED{ //枚举对象实现抽象方法
public String getColor(){ return "红色"; }
},
GREEN{
public String getColor(){ return "绿色"; }
},
BLUE{
public String getColor(){ return "蓝色"; }
};
}
在枚举类中定义抽象方法
public class AbstractMethodEnum {
public static void main(String[] args) {
for(Color6 c : Color6.values()){
System.out.print(c.getColor() + " ");
}
}
}
enum Color6{
RED{ //枚举对象实现抽象方法
public String getColor(){ return "红色"; }
},
GREEN{
public String getColor(){ return "绿色"; }
},
BLUE{
public String getColor(){ return "蓝色"; }
};
public abstract String getColor();
}