首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java中的枚举Enum

在Java没有提供枚举的时候,比如我们要使用一个表示周几的枚举值怎么办? Java中是这样解决的:定义一个私有的构造函数,然后在类中new出对象来。...我们可以定义枚举中的成员函数。...中枚举的总结: 1.枚举也是一种特殊形式的Java类 2.枚举类中声明的每一个枚举值代表枚举类的一个实例对象 3.与Java中普通类一样,在声明枚举类时,也可以声明属性、方法构造函数,但枚举类的构造函数必须为私有的...4.枚举类也可以实现接口,或继承抽象类 5.若枚举只有一个枚举值,则可以当做单态设计模式使用 最后需要明确的是: Java中声明枚举类,均是java.lang.Enum类的子类,它继承了Enum...具体方法可以参考Java API文档,里面提供了一些有用的方法。

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java 中枚举类的使用

    在日常写项目时,很多数据字典常量都需要定义和使用,同时在 Java 面试中,枚举也是一个绕不开的话题,这篇文章就来详细介绍一下枚举的定义以及使用。 01  【什么是枚举类?】...枚举类型在 C# 或 C++ 、 java 、 VB 等一些编程语言中是一种基本数据类型而不是构造数据类型。 而在C语言中则是一种构造数据类型。...枚举类的定义就是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内,使用枚举可以很方便地定义数据常量、以及我们的使用。 02  【为什么需要枚举类?】...: valueOf():返回当前枚举类的name属性,如果没有,则throw new java.lang.IllegalArgumentException()。...具体可以查看java.lang.Enum源码。 values():返回包括所有枚举变量的数组。

    1.6K20

    java中遍历数组的方法_java遍历object数组

    参考 【JavaGuide】labmbda 表达式 引言 记录一下 Java 遍历数组的几种常见方法 下面以遍历整数数组为例 Integer[] arr = { 1, 3, 4, 5, 6};...,以及 8 大基本类型对应的包装类数组 缺点: 无法通过下标访问数据元素 3、使用 -> 的 lambda 表达式遍历数组 // 3、使用 -> 的 lambda 表达式遍历数组 System.out.println...方法体中最好不要包含太多逻辑复杂的代码(可以通过方法引用 ::) 4、使用 :: 的 lambda 表达式遍历数组 // 4、使用 :: 的 lambda 表达式遍历数组 System.out.println...("\n\n4、使用 :: 的 lambda 表达式遍历数组"); list.forEach(System.out::println); 优点: 简单、方便 缺点: 不方便自定义打印内容的格式 (...除非自己重新定义一个 print 方法,但是那样就违背了使用 lambda 表达式是“为了更简单”的初衷了) 5、基于流的方法 《Java 卷2》暂时没看,看了之后回头再补 版权声明:本文内容由互联网用户自发贡献

    2.4K10

    关于Java中枚举Enum的深入剖析

    在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定。Java也不例外。Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析。...枚举原理是什么 Java中Enum的本质其实是在编译时期转换成对应的类的形式。...); static {}; } 从上反编译结果可知 java代码中的Season转换成了继承自的java.lang.enum的类 既然隐式继承自java.lang.enum,也就意味java代码中,.... values方法 values方法的的返回值实际上就是上面$VALUES数组对象 swtich中的枚举 在Java中,switch-case是我们经常使用的流程控制语句.当枚举出来之后,switch-case...Java中enum的一些深入的剖析,欢迎大家不吝赐教。

    71230

    java hashmap 遍历删除元素_java 中 HashMap 遍历与删除

    首先,在老版本java中这是惟一遍历map的方式。另一个好处是, * 你可以在遍历时调用iterator.remove()来删除entries,另两个方法则不能。...根据javadoc的说明, * 如果在for-each遍历中尝试使用此方法,结果是不可预测的。从性能方面看,该方法类同于for-each遍历(即方法二)的性能。 **/Map, ?...如果你使用的语言版本低于java 5,或是打算在遍历时删除entries,必须使用方法三。...否则使用方法一(键值都要) HashMap之删除元素 如果采用第一种的遍历方法删除HashMap中的元素,Java很有可能会在运行时抛出异常 HashMap myHashMap = new HashMap...Source) at java.util.HashMap$EntryIterator.next(Unknown Source) 可以推测,由于我们在遍历HashMap的元素过程中删除了当前所在元素,下一个待访问的元素的指针也由此丢失了

    2.5K10

    java中hashmap遍历_map遍历的两种方式

    大家好,又见面了,我是你们的朋友全栈君。 在java开发中,hashMap是非常重要的容器类,存储的是键值对(key,value)。...HashMap有两个参数影响其性能,初始容量和加载因子,当哈希表中的条目数超出加载因子与当前容量的乘积时,要对哈希表进行refresh操作,重建内部数据结构,容量扩大为之前的两倍,加载因子默认值为0.75...HashMap的遍历方式 第一种,遍历HashMap的entrySet键值对集合,通过HashMap.entrySet()得到键值对集合,通过迭代器Iterator遍历集合得到key和value。...HashMap的keySet集合,通过HashMap.keySet()得到key集合,通过for循环遍历集合得到key和value。...Iterator遍历集合方式、for循环遍历集合方式,Lambda遍历集合方式,根据具体需求选用不同的方式,通过Iterator方式循环删除数据是安全的,for方式循环删除数据非安全,Lambda方式循环删除数据非安全

    78840

    关于Java中枚举Enum的深入剖析

    在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定。Java也不例外。Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析。...枚举原理是什么 Java中Enum的本质其实是在编译时期转换成对应的类的形式。...); static {}; } 从上反编译结果可知 java代码中的Season转换成了继承自的java.lang.enum的类 既然隐式继承自java.lang.enum,也就意味java代码中,Season.... values方法 values方法的的返回值实际上就是上面$VALUES数组对象 swtich中的枚举 在Java中,switch-case是我们经常使用的流程控制语句.当枚举出来之后,switch-case...Java中enum的一些深入的剖析,欢迎大家不吝赐教。

    95630

    Java中怎样由枚举常量的ordinal值获得枚举常量对象

    大家好,又见面了,我是全栈君 Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方 enum Season { SPRING, SUMMER, AUTUMN,...在本例中,对于Season.SPRING这个对象,Season.SPRING.name()能够得到该对象的字符串,即“SPRING”;反之,由Season.valueOf(“SPRING”)则能够得到该对象...对于枚举类型,Java内部实际上还是转换为java.lang.Enum的子类,能够通过“javap -c Season”命令反编译来观察这一点。...Enum类提供了一个ordinal()方法,用来返回枚举对象的序数,比方本例中SPRING, SUMMER, AUTUMN, WINTER的序数就分别为0, 1, 2, 3。...在自己定义的枚举类型中,我们仅仅要定义自己的valueOf(int)方法,并返回该数组下标对象的对象就能够了。

    1.8K10

    Java枚举

    假设我们现在往WeekConstant中再添加一行: public static final Integer WEEK = 1; 将其传入到一个接收参数为"星期一"的方法中,并不会产生任何问题,因为都能表示....enums.WeekEnum MON MON API Document API 描述 name 枚举的名字 Enum.values() 返回一个当前枚举类中的所有枚举元素 ordinal...返回当前枚举在枚举类中的索引,从0开始 getDeclaringClass 返回枚举类的类型 Enum.valueOf() 返回与传入的名称相等的枚举,可能会抛出异常 switch配合枚举类编写状态机...使用抽象方法为每个枚举指定特定的行为 枚举不仅可以用来表示常量,有些时候,我们也可以将一些简单的计算逻辑写在枚举类中。...这个可以从反编译的文件中查看: 反编译 可以通过接口来让枚举实现一些通用的方法 定义一个接口,声明打印名字的能力 package com.tea.modules.java8.enums; /** *

    2.5K74

    java 枚举

    如何自定义枚举类 提供类的属性,声明为 private final 声明为 final 的属性,在构造器中初始化 通过公共方法(get)方法来调用属性 创建枚举类的对象:将类的对象声明 public static...values() 方法:返回所有值 valueOf() 方法:返回指定对象的值(要求传入的形参name是枚举类对象的名字) 否则,报 java.lang.IllegalArgumentException...(要求传入的形参name是枚举类对象的名字) // 否则,报 java.lang.IllegalArgumentException 异常 String str = "SPRING...枚举类实现接口 可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同。...(要求传入的形参name是枚举类对象的名字) // 否则,报 java.lang.IllegalArgumentException 异常 String str = "WINTER

    1.2K30

    Java枚举

    什么是枚举?枚举是一种特殊的数据类型,用于定义具有固定个数的常量集。它可以帮助我们更好地管理常量,使代码更易于阅读和维护。Java枚举是一种高效、可读性强的常量管理方式,它可以使代码更易于维护和扩展。...使用Java枚举可以帮助我们有效地组织常量,并将其用于多种场景,提高代码的易用性和可重用性。如何使用Java枚举?...在Java中,定义枚举使用enum关键字,其基本语法结构如下:其中,EnumName表示枚举类型的名称,CONSTANT1、CONSTANT2、……、CONSTANTN表示枚举类型中的常量值。...如何使用Java枚举中的常量值?...在Java枚举中,我们可以为每个常量值添加方法,以进一步组织和管理常量。

    18421

    Java 枚举

    Java 枚举 枚举 enum 什么是枚举类: Java 枚举是一个特殊的类,一般表示一组常量 比如: 一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等… 类似这种当一个变量有几种固定可能的取值时..., 可以将它定义为枚举类型 出现: Java1.5 之前是没有 枚举 和 注解 的....JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象 作为表达式 case 子句可以直接使用枚举值的名字(无需添加枚举类作为限定) SeasonTest2.Java ​ Season.Java...该方法可以很方便地遍历所有的枚举值 //valueOf(String str) // 可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。...; } } } /** 可以于自定义枚举进行比较查看~ */ enum Season{ //1.必须在枚举类的第一行声明枚举类对象 //枚举类的所有实例必须在枚举类中显式列出

    9710
    领券