精华内容
下载资源
问答
  • Java 遍历枚举值

    千次阅读 2020-09-19 09:18:46
    Java 遍历枚举值 枚举是Java中数据类型,用于将一组预定义常量赋给变量。本文介绍几种方式遍历枚举值。 1. 定义枚举 首先我们定义枚举,简单示例如下: public enum DaysOfWeekEnum { SUNDAY, MONDAY, TUESDAY, ...

    Java 遍历枚举值

    枚举是Java中数据类型,用于将一组预定义常量赋给变量。本文介绍几种方式遍历枚举值。

    1. 定义枚举

    首先我们定义枚举,简单示例如下:

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

    Enum类型没有提供迭代方法,如forEach() 或 iterator(), 我们可以使用其values()方法的返回值。

    2. 遍历枚举

    2.1 使用for循环

    首先使用for循环实现:

    for (DaysOfWeekEnum day : DaysOfWeekEnum.values()) { 
        System.out.println(day); 
    }
    

    2.2 使用流方式

    我们也可以使用java.util.Stream,我们可以在枚举值上执行相应操作创建流:

    Stream.of(DaysOfWeekEnum.values());
    

    或者:

    Arrays.stream(DaysOfWeekEnum.values());
    

    这里扩展上面的枚举类,使用流方式实现:

    public enum DaysOfWeekEnum {
        
        SUNDAY("off"), 
        MONDAY("working"), 
        TUESDAY("working"), 
        WEDNESDAY("working"), 
        THURSDAY("working"), 
        FRIDAY("working"), 
        SATURDAY("off");
     
        private String typeOfDay;
     
        DaysOfWeekEnum(String typeOfDay) {
            this.typeOfDay = typeOfDay;
        }
    	
        // standard getters and setters 
     
        public static Stream<DaysOfWeekEnum> stream() {
            return Stream.Of(DaysOfWeekEnum.values()); 
        }
    }
    

    现在写示例按顺序打印非工作日:

    public class EnumStreamExample {
     
        public static void main() {
            DaysOfWeekEnum.stream()
            .filter(d -> d.getTypeOfDay().equals("off"))
            .forEach(System.out::println);
        }
    }
    

    输出:

    SUNDAY
    SATURDAY
    

    2.3 使用forEach

    forEach方法是Java8开始引入,所有集合类都有其实现。为了在枚举中使用,首先需要转换枚举为集合子类。我们可以使用Arrays.asList方法生成ArrayList,然后使用forEach方法:

    Arrays.asList(DaysOfWeekEnum.values())
      .forEach(day -> System.out.println(day));
    

    2.4 使用EnumSet

    EnumSet是针对枚举类型的特殊实现:

    EnumSet.allOf(DaysOfWeekEnum.class)
      .forEach(day -> System.out.println(day));
    

    2.5 使用枚举类型的ArrayList

    我们可以往List中增加枚举值,这样可以按任何顺序操作List:

    List<DaysOfWeekEnum> days = new ArrayList<>();
    days.add(DaysOfWeekEnum.FRIDAY);
    days.add(DaysOfWeekEnum.SATURDAY);
    days.add(DaysOfWeekEnum.SUNDAY);
    for (DaysOfWeekEnum day : days) {
        System.out.println(day);
    }
    days.remove(DaysOfWeekEnum.SATURDAY);
    if (!days.contains(DaysOfWeekEnum.SATURDAY)) {
        System.out.println("Saturday is no longer in the list");
    }
    for (DaysOfWeekEnum day : days) {
        System.out.println(day);
    }
    

    也可以使用 Arrays.asList()方法创建ArrayList。但ArrayList底层的枚举值数组值是不可变的,因此不能对List进行增加或删除项,否则会抛出异常 UnsupportedOperationException:

    List<DaysOfWeekEnum> days = Arrays.asList(DaysOfWeekEnum.values());
    days.remove(0);
    

    3. 总结

    我们看到使用多种方式迭代枚举,forEach,Stream以及for等。如果需要执行并行操作可以使用stream方式,否则几种方式没有太多差异。

    展开全文
  • 遍历枚举类

    千次阅读 2019-01-11 16:02:29
    //定义枚举值 UNKNOWN(0, "未知"), NORMAL(1, "正常"), OFFLINE(2, "离线"), POWER_FAILURE(38, "电源断电"); //定义属性 private int code; private String ...
    public enum StatusType {
    	//定义枚举值
    	UNKNOWN(0, "未知"),
    	NORMAL(1, "正常"),
    	OFFLINE(2, "离线"),
    	POWER_FAILURE(38, "电源断电");
    	
    	//定义属性
    	private int code;
    	private String name;
    	
    	//构造方法
    	private StatusType(int code, String name) {
    		//为属性赋值
    		this.code = code;
    		this.name = name;
    	}
    
    	//get和set方法
    	public int getCode() {
    		return code;
    	}
    
    	public String getName() {
    		return name;
    	}
    	
    	public static String getValueBykey(int code) {
    		try {
    			for(StatusType type:StatusType.values()) {
    				if(type.getCode()==code) {
    					return type.getName();
    				}
    			}
    		}catch(Exception e) {
    			return "未知";
    		}
    		return "未知";
    	}
    }
    

     

    展开全文
  • C#遍历枚举所有值

    2019-04-09 23:46:00
    public enum EnumColor {  红色=1,  黑色=2,  白色=3 } foreach (EnumColor item in Enum.GetValues(typeof(EnumColor))) { string ename = item.ToString();  if ("红色" ==...

     

    public enum EnumColor

    {

      红色=1,

      黑色=2,

      白色=3

    }

     

    foreach (EnumColor item in Enum.GetValues(typeof(EnumColor)))
    {
      string ename = item.ToString();

      if ("红色" == ename)

        MessageBox.Show($"{(int)item}={item.ToString()}");

    }

    转载于:https://www.cnblogs.com/sinceret/p/10680667.html

    展开全文
  • 遍历枚举值

    千次阅读 2013-09-09 20:56:00
    为了方便,我们通常将同类选项封装成枚举里,有时为了能...public static Array GetValues(Type enumType),Array:所有枚举值的集合,enumType:要获取的枚举类型 比如获取Colors里的所有颜色代码如下: enum Colo

    为了方便,我们通常将同类选项封装成枚举里,有时为了能让用户选择,需要将枚举里的值全部显示出来,我们可以通过Enum.GetValues(),方法实现,该方法的声明如下:

    public static Array GetValues(Type enumType),Array:所有枚举值的集合,enumType:要获取的枚举类型
    
    比如获取Colors里的所有颜色代码如下:
    enum Colors { Red, Green, Blue, Yellow };
    
    Colors []colors=Enum.GetValues(typeof(Colors)) as Colors[];//获取所有值得集合后便可通过下标来获取要选取的值
    除了Enum.GetValues()方法Enum还提供Enum.GetNames()方法来获取枚举值字符串表示集合,其原型为:
    public static string[] GetNames( Type enumType),string[]:为所有枚举值字符串集合,enumType:要获取的枚举类型
    string []names=Enum.GetNames(typeof(Colors));//获取Colors里的枚举值字符串常量
    
    
    

    展开全文
  • 比如定义了一个错误的枚举类型 代码如下:public enum eErrorDetailCode : int { 登陆... 然后在循环中,遍历枚举对象的所有元素 代码如下:foreach (int myCode in Enum.GetValues(typeof(eErrorDetailCode))) 
  • VM页面中遍历枚举类

    2017-04-23 15:50:00
    1)自定义的枚举类如下所示: public enum BusType { MID_SMALL(1, "中小件"), FRESH(2, "生鲜"), GLOBAL_SHOPPING(3, "全球购"); private int key; private String value; private BusType(int ...
  • C# 遍历枚举

    千次阅读 2019-09-02 11:40:08
    本文告诉大家如何遍历枚举 遍历枚举是很简单,请看下面代码 StringBuilder sdqsuhDboyowb=new StringBuilder(); foreach (var temp in Enum.GetNames(typeof(MethodAttributes))) { sd...
  • 遍历枚举类两种方式小结

    万次阅读 2017-05-05 14:10:29
    public enum EnumsTest { ... System.out.println("第二种通过枚举静态方法values()"); for(EnumsTest rate:EnumsTest.values()){ System.out.println(rate.getType()); } } }
  • 1, 将枚举类型ViewType中所有值遍历,放到coboBox中 cbeType.Properties.Items.Clear(); cbeType.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
  • usingSystem; namespacePSP { classGetEnumValues { publicstaticvoidMain() { TypeSexs=typeof(SexKind); Console.WriteLine("Thekindsof...
  • 遍历枚举

    2020-10-16 11:56:35
    那么我们要怎么才能实现枚举遍历呢?这里我们需要用到强制类型转换,这样遍历在结束后就可以获取到下一个枚举成员了。遍历范围可以通过定义枚举成员变量来限制,这里最后一个枚举成员为HNC_SYS_TOTAL。这里主要是...
  • UE4遍历枚举

    千次阅读 2020-04-02 09:57:16
    UE4遍历枚举方式 UEnum*MyEnum=StaticEnum<MyEnumType>(); for(int32 i;i<MyEnum->NumEnums()-1;i++) { MyEnumType(MyEnum->GetValueByIndex(i)); } GetValueByIndex获取的为int64,需要转为...
  • jsp 页面遍历 枚举

    千次阅读 2017-02-20 00:39:25
    给大家分享下 jsp 页面,遍历枚举 ~不废话、直接上代码! 有不合理、不对的地方,还望大牛们如果有想法,留下你们的宝贵文字,以便我们大家更好的学习与进步!!!
  • Delphi 遍历枚举类型

    2021-07-17 09:54:23
    遍历枚举元素名称及枚举值 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, TypInfo; type TForm1 = class(TForm) Button1: ...
  • js中遍历枚举类型

    千次阅读 2020-03-07 18:08:39
    首先声明一个js的枚举变量: /** * RH血型枚举 * @type {{P: string, U: string, N: string}} */ var RHXueXing = { P: '阳性+(P)', N: '阴性-(N)', U: '未知(U)' ... * 遍历枚举类 */ function...
  • 2019-8-31-C#-遍历枚举

    2019-11-21 16:09:08
    title author date CreateTime categories C# 遍历枚举 lindexi 2019-08-31 16:55:58 +0800 2018-03-13 20:42:25 +0800 ...本文告诉大家如何遍历枚举 ...遍历枚举是很简单,请看下面代码...
  • 满意答案ctjjvpyt92015.09.21采纳率:44%等级:10已帮助:1370人在C语言中,枚举类型是被当做int或者unsigned int类型来处理的,所以按照C语言规范是没有办法遍历枚举类型的。不过在一些特殊的情况下,可以实现有...
  • 写个小东西,刚好用到枚举类型,需要显示在DropDownList控件中。尝试了下,用如下方法可以实现。 比如定义了一个错误的枚举类型 1 public enum eErrorDetailCode 2 { 3 登陆成功 = 0, 4 登出 = 1, 5 应用...
  • JS/TS 遍历枚举

    万次阅读 2019-05-24 15:54:23
    遍历枚举,有些情况下我们需要对枚举进行遍历,比如…… 正常情况下咱不会去直接遍历它,但!这不重要!! 在开始前,首先得明确枚举和遍历的概念 枚举本质上就是键值对,一个字符串作为键,对应一个数字,是划分类别...
  • 循环遍历枚举类型

    千次阅读 2020-04-04 10:04:57
    遍历获取枚举类型集合 1.枚举类型可以在上面写注释,比如A上面可以加doc注解,本人建议无论枚举属性等都加doc注解。哪怕你一眼就能看出来意思。 2.应为枚举的数量在运行中不会改变,所以我们采用单例模式,只new...
  • 枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。2. 枚举变量的说明 如同结构和联合...
  • C# 遍历枚举 C#中,如何获取(遍历)枚举中所有: public enum Suits { Spades, Hearts, Clubs, Diamonds, NumSuits } private static void Main(strin...
  • C#遍历枚举(Enum)

    千次阅读 2014-09-26 11:22:10
    foreach (object o in Enum.GetValues(typeof(EmpType))) { Console.WriteLine("{0}:{1}", o, Enum.Format(typeof(EmpType), o, "D")); }
  • c#遍历枚举(ENUM)类型的方法,简单实用,适合c#初学者
  • 遍历枚举类型的

    2014-05-28 16:51:00
    1 uses System.TypInfo; 2 3 type 4 Taa=(aa,bb,cc,dd); 5 procedure Button1Click(Sender: TObject); 6 var 7 piType:PTypeInfo; 8 s:string; 9 i:Integer; ...11 piType :=...
  • freemarker中遍历枚举

    千次阅读 2018-05-21 15:34:06
    商城项目 我的订单 -商城展示。  开始商城少的时候 ...想把商城的枚举直接扔到前端页面上,目标枚举比较,匹配上显示相应的内容。 实现: 1.把enum.values 放到session域中。 2.页面上。 注意${**.get**()}.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,419
精华内容 41,367
关键字:

遍历枚举类所有枚举值