枚举(Enum)用于表示编程语言中的一组命名常量。如果想表示一个名为常量的组,那么应该使用 Enum。每个枚举常量都是静态的。因此,可以通过使用枚举名称来访问它。
示例:
enum Day{
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}
ordinal()方法
java.lang.Enum.ordinal()
讲述特定枚举的序号(它是其枚举声明中的位置,其中初始常量被分配为零序数)。
ordinal()
方法是一个非静态方法,这意味着它只能通过类对象访问,如果尝试访问另一个类的对象,它会给出错误。这是最后一种方法,不能被覆盖。ordinal()
方法返回枚举常量的序号。(它在枚举声明中的位置,其中第一个常量被分配为零序数)。
语法:
public final int ordinal();
返回值:
- 此方法返回此枚举常量的序号。
示例:
Day d1 = Day.TUESDAY;
System.out.println("the ordinal value is :" + d1.ordinal());
输出结果:
the ordinal value is : 2
演示代码:
// Java program to show the usage of
// ordinal() method of java enumeration
enum Day{
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}
class Main{
public static void main(String args[])
{
Day days[] = Day.values();
for(Day d : days)
System.out.print(d.ordinal() + " " );
}
}
输出结果:
0 1 2 3 4 5 6
compareTo()方法
枚举类的 compareTo() 方法将此枚举对象与定义的排序对象进行比较。枚举常量只能与相同类型的其他枚举常量进行比较。
返回:
- 负整数(如果此枚举小于定义的对象)。
- 零,如果此枚举等于定义的对象。
- 一个正整数(如果此枚举大于定义的对象)。
语法:
int compareTo(Object obj)
示例:
Day day1 = Day.SUNDAY;
Day day2 = Day.MONDAY;
System.out.println(day1.compareTo(day2));
由于第 1 天的序号值小于第 2 天,因此它将返回负值。
示例:
// Java program to show the usage of
// compareTo() method of java enumeration
enum Day
{
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}
class YiibaiDemo{
public static void main(String args[])
{
Day d1 = Day.SUNDAY;
Day d2 = Day.MONDAY;
Day d3 = Day.TUESDAY;
// will return negative value since d1 < d2
System.out.println(d1.compareTo(d2) );
// will return positive value since d2 > d1
System.out.println(d2.compareTo(d1) );
// will return 0 since d3 == d3
System.out.println(d3.compareTo(d3) );
}
}
运行结果:
-1
1
0
Java Enum 中 ordinal()和compareTo()的区别
Ordinal() | CompareTo() |
---|---|
返回枚举常量的位置。 | 返回一个负整数,如果此枚举小于定义的对象。如果此枚举等于定义的对象,则返回零。如果此枚举大于定义的对象,则返回一个正整数。 |
它不需要任何争论。 | 它采用枚举常量作为参数。 |
| ——- | ——- | ——- |
Java Enum 中 ordinal()和compareTo()的区别
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Java Enum 中 ordinal()和compareTo()的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-ordinal-and-compareto-in-java-enum.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。