可以通过三种方式比较两个枚举常量:
使用Enum类的compareTo()方法
使用Enum类的equals()方法
使用==运算符
Enum类的compareTo()方法比较同一枚举类型的两个枚举常量。它返回两个枚举常量的序数差。如果两个枚举常量相同,则返回零。
示例
以下代码将打印-3,因为LOW(ordinal = 0)和URGENT(ordinal = 3)的序数的差为-3。
负值表示正在比较的常数发生在比较对象之前。
enum Level {
LOW, MEDIUM, HIGH, URGENT;
}
public class Main {
public static void main(String[] args) {
Level s1 = Level.LOW;
Level s2 = Level.URGENT;
// s1.compareTo(s2) returns s1.ordinal() - s2.ordinal()
int diff = s1.compareTo(s2);
System.out.println(diff);
}
}
上面的代码生成以下结果。
-3
实例-2
Enum类的equals()方法比较两个枚举常量的相等性。枚举常量只等于自身。equals()方法可以在不同类型的两个枚举常量上调用。
enum Level {
LOW, MEDIUM, HIGH, URGENT;
}
public class Main {
public static void main(String[] args) {
Level s1 = Level.LOW;
Level s2 = Level.URGENT;
System.out.println(s1.equals(s1));
}
}
上面的代码生成以下结果。
true
可以使用等于(==)运算符来比较两个枚举常量的相等性。等于(==)运算符的两个操作数必须是相同的枚举类型。
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。