您的位置:首页 > 国际新闻

技术分享:获取枚举值代码优化

时间:2020-02-07

1背景

在实际开发中,根据枚举的属性获取枚举值是非常常见的。

如果您定义了枚举:

在实际开发中,您通常需要根据该值获取枚举对象。

那我该怎么办?

2代码

2.1写得很低

在工作中,开关情况或if-else用于根据某个属性获得枚举。

类似于下面的写入方法:

这种写入方法的最大问题是,如果枚举常数需要相应地修改以进行添加、删除和修改,那么耦合度非常高。

不符合开-闭原则(开-闭原则:开-扩,闭-改)。

此外,如果有许多枚举常数,很容易映射不正确,以后很难维护。

2.2 Improvement

我们可以使用枚举类的values静态函数来获取匹配的枚举数组,并编写代码的改进版本:

通过这种改进,枚举常量需要在以后修改。这个函数不需要修改,这显然比以前好得多。

这种写作在工作中也很常见。

那么还有改进的余地吗?

这是一个很好的写方法,但是每次你得到一个枚举对象,你必须遍历枚举数组一次,时间复杂度是O(n)。

我应该如何降低时间复杂度?一个常见的想法是改变时间的空间。

2.3再次优化

因此,您可以首先使用地图缓存,并在使用时直接从地图获取值。

可优化如下:

通过上述优化,时间复杂度为O(1),性能得到提高。

在实际发展中,没有多少学生能够使用这种写作方法。

主要原因是网上相似的文章不多,这也是为什么很多喜欢百度解决问题而不是思考解决问题的学生进展甚微的一个重要原因。

2.4学习无休无止

通过以上两种优化,减少了代码的耦合,提高了性能。

那么,我们能收工了吗?由

否给出的代码.

2.3仍然有一些问题:

每个枚举类都需要编写类似的代码,这非常乏味。

引入了许多提供上述工具的枚举类。如果只使用枚举常量,静态代码块的执行也会被触发。

有更优雅的解决方案吗?

我希望你能考虑一下并给出自己的解决方案。

3摘要

既然你选择了这种编程方式,我希望你在提问之前和百度之前有自己的想法。

在学校和社会招聘中,许多大公司的面对面经历非常有吸引力,但对大多数人来说却没什么帮助。因为许多经文只有问题而没有答案,许多人会寻找各种答案来背诵它们。然而,许多所谓的标准答案没有揭示问题的本质,是不完整的,也不是最好的答案。

依依成人视频|人妖成人视频在线观看|成人免费观观看视频在线

  • 友情链接:
  • 雨花台资讯网 版权所有© www.hcyxsq.cn 技术支持:雨花台资讯网| 网站地图