Java Enum ordinal() Method

The ordinal() method in Java is used to retrieve the ordinal value of the enum constant, which represents its position in the enum declaration.

Table of Contents

  1. Introduction
  2. ordinal() Method Syntax
  3. Understanding ordinal()
  4. Examples
    • Basic Usage
    • Comparing Ordinal Values
  5. Real-World Use Case
  6. Conclusion

Introduction

The ordinal() method is a final method in the java.lang.Enum class. It returns the ordinal value of the enum constant, which is its position in the enum declaration, starting from 0. This method is useful when you need to compare enum constants based on their declaration order or when storing enums in data structures that rely on numerical values.

ordinal() Method Syntax

The syntax for the ordinal() method is as follows:

public final int ordinal()

Parameters:

  • This method does not take any parameters.

Returns:

  • The ordinal value of the enum constant (an integer).

Understanding ordinal()

The ordinal() method returns an integer representing the position of the enum constant in its enum type declaration. The first constant declared has an ordinal value of 0, the second has an ordinal value of 1, and so on. This method is particularly useful for comparing the order of enum constants.

Examples

Basic Usage

To demonstrate the basic usage of ordinal(), we will create a simple enum and use this method to retrieve and print the ordinal value of an enum constant.

Example

public enum Day {
    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY
}

public class EnumOrdinalExample {
    public static void main(String[] args) {
        Day day = Day.WEDNESDAY;
        int ordinal = day.ordinal();
        System.out.println("The ordinal value of " + day + " is: " + ordinal);
    }
}

Output:

The ordinal value of WEDNESDAY is: 3

Comparing Ordinal Values

You can use the ordinal() method to compare the positions of different enum constants.

Example

public class EnumComparisonExample {
    public static void main(String[] args) {
        Day day1 = Day.MONDAY;
        Day day2 = Day.FRIDAY;

        if (day1.ordinal() < day2.ordinal()) {
            System.out.println(day1 + " comes before " + day2);
        } else if (day1.ordinal() > day2.ordinal()) {
            System.out.println(day1 + " comes after " + day2);
        } else {
            System.out.println(day1 + " is the same as " + day2);
        }
    }
}

Output:

MONDAY comes before FRIDAY

Real-World Use Case

Enum-Based Sorting

In a real-world scenario, you might use the ordinal() method to sort a list of enum constants based on their declaration order. This can be particularly useful for displaying options in a predefined order.

Example

import java.util.Arrays;

public class EnumSortingExample {
    public static void main(String[] args) {
        Day[] days = Day.values();

        Arrays.sort(days, (d1, d2) -> Integer.compare(d1.ordinal(), d2.ordinal()));

        System.out.println("Sorted days by ordinal:");
        for (Day day : days) {
            System.out.println(day + " - Ordinal: " + day.ordinal());
        }
    }
}

Output:

Sorted days by ordinal:
SUNDAY - Ordinal: 0
MONDAY - Ordinal: 1
TUESDAY - Ordinal: 2
WEDNESDAY - Ordinal: 3
THURSDAY - Ordinal: 4
FRIDAY - Ordinal: 5
SATURDAY - Ordinal: 6

Conclusion

The ordinal() method in Java provides a way to retrieve the ordinal value of an enum constant, representing its position in the enum declaration. By using this method, you can compare enum constants based on their declaration order, sort them, and perform other operations that depend on their numerical position. 

Comments