枚举(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
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。