首页 > 作文

Java通过值查找对应的枚举的实现

更新时间:2023-04-04 21:39:05 阅读: 评论:0

目录
一、背景二、通过一个值 ,查询返回对应的枚举(示例代码)2.1、枚举类2.2、常用的枚举方法;values(), ordinal() 和 valueof() 方法2.3、通过传入一个或者多个值,返回对应的枚举三、查找优化

一、背景

java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。

最近工作中,对接了很多其他的系统,发现对接的同一个系统都有不同的环境(开发、测试、正式环境),并且每个环境的配置信息通常不会修改,所以发现用枚举 做配置项,使用起来比较简洁,不同的环境配置 只需多定义一个枚举值就搞定了。

其中使用枚举就会涉及到通过传入的值,返回对应的枚举。

二、通过一个值 ,查询返回对应的枚举(示例代码汽车电子电器)

2.1、枚举类

@getterpublic enum customtype {  test("test","测试","111"),  dev("dev","开发","222");  string typecode;  string typename;  string orgid;  customtype(string typecode, string typename, string orgid) {    this.typecode = typecode;    this.typ2017品质盛典ename = typename;    this.orgid = orgid;  }}

2.2、常用的枚举方法;values(), ordinal() 和 valueof() 方法

enum 定义的枚举类默认继承了 java.lang.enum 类,并实现了 java.lang.riablizable 和 java.lang.comparable 两个接口。

values(), ordinal() 和 valueof() 方法位于 java.lang.enum 类中:

values() 返回枚举类中所有的值。ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。valueof()方法返回指定字符串值的枚举常量。

传入值查询枚举,就是通过values()方法,返回所以枚举,再遍历全部枚举,只要传入的参数值 跟当前枚举的值跟相同,就借读生的利弊返回当前枚举;

2.3、通过传入一个或者多个值,返回对应的枚举

  public customtype find(string typecode){    for (customtype value : customtype.values()) {      if(typecode.equals(value.gettypecode())){        return value;      }    }    //根据自身的业务 查不到可以返回null,或者抛出异常。    return null;  }  public customtype find(string orgid,string typecode){    if(orgid == null || typecode == null){      return null;    }    for (customtype value : customtype.values()) {      if(orgid.equals(value.getorgid()) &&          typecode.equals(value.get描写外貌的成语typecode())){        return value;      }    }    //根据自身的业务 查不到可以返回null,或者抛出异常。    return null;  }

三、查找优化

每次通过values()方法遍历查找,时间复杂度是o(n),而通过hashmap查找,时间复杂度是o(1)。

虽说枚举的数量通常都不会很庞大,每次通过values()方法遍历查找速度也很快。用hashmap会多占用一点点内存,但是考虑到这一点内存能从时间复杂度是o(n)降到o(1),这种惠而不费的事,还是可以花时间去优化代码的。

  private static map<stri人皆有不忍人之心ng,customtype> orgcustomtype = new hashmap<>();  static {    for (customtype value : customtype.values()) {      orgcustomtype.put(value.getorgid(),value);    }  }  public customtype find(string orgid){    return orgcustomtype.get(orgid);  }

到此这篇关于java通过值查找对应的枚举的实现的文章就介绍到这了,更多相关java 值查找对应的枚举内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 21:39:03,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3097f54dd02d2cb755866e2fa5349f56.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Java通过值查找对应的枚举的实现.doc

本文 PDF 下载地址:Java通过值查找对应的枚举的实现.pdf

标签:方法   复杂度   常量   遍历
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图