「java枚举类型比较」java 枚举比较
本篇文章给大家谈谈java枚举类型比较,以及java 枚举比较对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java的枚举值能不能用==比较
- 2、java中如何判断一个变量是否属于某个枚举类型中的元素?
- 3、怎么比较两个枚举类型是否相等
- 4、java中枚举类型能不能拿来比较
- 5、请问java中比较枚举类对象值相等是用==还是equals
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 枚举比较的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-17,除非注明,否则均为
原创文章,转载请注明出处。