你知道Enum怎么比较大小吗?

 时间:2026-02-14 21:09:32

1、Enum实现Comparable接口,可使用compareTo方法来比较大小

先来个遍历enum的代码

Code:

package chapter4;

/**

* Created by MyWorld on 2016/3/21.

*/

enum Season {

   Spring,

   Summer,

   Autumn,

   Winter

}public class EnumCompare {

   public static void main(String[] args) {

       for (Season season : Season.values()) {

           System.out.println(season + "  " + season.ordinal());

       }

   }

}

你知道Enum怎么比较大小吗?

2、执行上面的代码看看结果:

Spring  0

Summer  1

Autumn  2

Winter  3

你知道Enum怎么比较大小吗?

3、看到了没,每个枚举值都有一个ordinal()方法,这个方法的执行结果是返回一个数。

这个数据是什么意义呢?

看看源码呢

源码:

/**

   * Returns the ordinal of this enumeration constant (its position

   * in its enum declaration, where the initial constant is assigned

   * an ordinal of zero).

   * 

   * Most programmers will have no use for this method.  It is

   * designed for use by sophisticated enum-based data structures, such

   * as {@link java.util.EnumSet} and {@link java.util.EnumMap}.

   *

   * @return the ordinal of this enumeration constant

   */

  public final int ordinal() {

          return ordinal;

  }

你知道Enum怎么比较大小吗?

4、直接使用枚举对象进行比较大小,就是使用这个值

使用Compare比较大小

Code:

System.out.println("Compare to autumn:" + season.compareTo(Season.Autumn));

你知道Enum怎么比较大小吗?

5、执行下,

看看结果与预期的是否一致

是一致的!!

Output:

Spring  0

Compare to autumn:-2

Summer  1

Compare to autumn:-1

Autumn  2

Compare to autumn:0

Winter  3

Compare to autumn:1

你知道Enum怎么比较大小吗?

6、既然有ordinal()方法,能不能使用==运算符呢

改下代码

Code:

System.out.println("Compare to autumn:" + (season == Season.Autumn));

你知道Enum怎么比较大小吗?

7、执行下,

看看结果是否与预期一致

一致的.

枚举值之间是可以使用==来比较大小的

Output:

Spring  0

Compare to autumn:-2

Compare to autumn:false

Summer  1

Compare to autumn:-1

Compare to autumn:false

Autumn  2

Compare to autumn:0

Compare to autumn:true

Winter  3

Compare to autumn:1

Compare to autumn:false

你知道Enum怎么比较大小吗?

  • win10右键菜单中多余项的删除方法
  • 如何在 Edge 浏览器中显示书签 / 收藏夹
  • Win7系统二级网页打不开怎么解决
  • 使用浏览器怎么同步数据
  • PotPlayer播放文件类型怎么设置为视频
  • 热门搜索
    研究生调剂是什么意思 十万块钱买什么车好 艾灸盒什么材质的好 擦玻璃器什么牌子好 遗孀的意思 高屋建瓴的意思 18朵玫瑰代表什么 澳门有什么值得买的 朋友生日祝福语大全 points是什么意思