「java枚举类型比较」java 枚举比较

博主:adminadmin 2022-12-17 15:36:09 86

本篇文章给大家谈谈java枚举类型比较,以及java 枚举比较对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java的枚举值能不能用==比较

一般在Java代码里面,涉及到比较2个值的问题,除了是简单的一般数据类型意外,字符串除外,我们都是使用==来判断是否相等的,但是对于字符串和对象以及封装类型的数据都是使用equals方法,来判断2个值是否相等。所以,当我看到别人的代码中,枚举类型变量,直接使用==,来判断是不是相等,很是诧异。然后就有了下面的调查和测试。

先看测试代码:

[java] view plain copy

/**

* 测试枚举比较,使用equal和==

*/

private static void testEnumEqual() {

GameEnum s1 = GameEnum.BIG;

GameEnum s2 = GameEnum.BIG;

GameEnum ss1 = GameEnum.SMALL;

System.out.println("s1 == s2:" + (s1 == s2));

System.out.println("s1.equals(s2):" + (s1.equals(s2)));  

System.out.println("s1 == ss1:" + (s1 == ss1));

System.out.println("s1.equals(ss1):" + (s1.equals(ss1)));

}

再看使用的枚举代码:

[java] view plain copy

/**

* Created by lxk on 2017/2/23

*/

public enum GameEnum{

BIG,

SMALL,

FATTER

}

最后是代码执行的结果图:

结果是:

可以看到,使用== 和使用equals方法的执行结果是一样的。

为什么呢?

可以看下图,因为在Enum类里面,已经重写了equals方法,而方法里面比较就是直接使用==,来比较2个对象的。所以,你在外边直接使用==也是可以的。

java中如何判断一个变量是否属于某个枚举类型中的元素?

接口 Enumeration的两个函数 boolean hasMoreElements()测试此枚举是否包含更多的元素。 nextElement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。 利用这两个函数,利用while循环就可以读取里面的元素,当然读取出来得元素通过强制转换,就可以和变量进行比较 。

枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。

枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:

Java代码:

public enum Color{

RED,BLUE,BLACK,YELLOW,GREEN

}

显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。

而这些类都是类库中Enum类的子类(java.lang.Enum)。

它们继承了这个Enum中的许多有用的方法。

我们对代码编译之后发现,编译器将enum类型单独编译成了一个字节码文件:Color.class。

怎么比较两个枚举类型是否相等

如果是引用数据类型,那么就是判断两个对象在内存中的地址是否相等;如果是基本数据类型,那就是判断两个值是否相等 equals:判断两个对面的值字符串是否相等 对面枚举来说,使用equals和==是一样的。

写一个main方法来测试比较:

public class Test {

public static void main(String[] args) {

Language enumObj = Language.JAVA;

if (enumObj == Language.JAVA) {

System.out.println("Welcome Java");

} else if (enumObj == Language.NET) {

System.out.println("Welcome .Net");

} else if (enumObj == Language.NODE) {

System.out.println("Welcome Node JS");

} else if (enumObj == Language.PYTHON) {

System.out.println("Welcome Python");

} else if (enumObj == Language.RUBY) {

System.out.println("Welcome Ruby");

} else {

System.out.println("Hello World");

}

}

}

结果输出:

Welcome Java

扩展资料:

枚举类型放在窗体模块、标准模块或共用模块中的声明部分,通过enum语句来定义。

格式:[public|private] enum name

membername[=constantexpression]

membername[=constantexpression]

(maomi)

…..

End enum

public:表示该枚举类型在整个工程中都是可见的(缺省的)

private:表示枚举类型只在所声明的模块中是可见的。Name: 枚举类型的名称。必须是一个合法的VB标识符,在定义该枚举类型的变量或参数时用该名称来指定类型.

参考资料来源:百度百科-枚举类型

java中枚举类型能不能拿来比较

枚举类型直接用 == 比较即可,因为枚举本来就是单例模式的一种用法。

请问java中比较枚举类对象值相等是用==还是equals

用==;equals是比较两个字符串类型的数据是不是一致的。枚举类型都是用==的哈。

关于java枚举类型比较和java 枚举比较的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-17,除非注明,否则均为首码项目网原创文章,转载请注明出处。