博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java数据结构(一)------枚举(Enumeration)
阅读量:4282 次
发布时间:2019-05-27

本文共 1192 字,大约阅读时间需要 3 分钟。

Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。

 

这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现代代码中已经被很少使用了。尽管如此,它还是使用在诸如Vector和Properties这些传统类所定义的方法中,除此之外,还用在一些API类,并且在应用程序中也广泛被使用。 下表总结了一些Enumeration声明的方法:

序号 方法描述
1 boolean hasMoreElements( )
 测试此枚举是否包含更多的元素。
2 Object nextElement( )
如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。

实例

以下实例演示了Enumeration的使用:

实例

import java.util.Vector; import java.util.Enumeration; public class EnumerationTester { public static void main(String args[]) { Enumeration<String> days; Vector<String> dayNames = new Vector<String>(); dayNames.add("Sunday"); dayNames.add("Monday"); dayNames.add("Tuesday"); dayNames.add("Wednesday"); dayNames.add("Thursday"); dayNames.add("Friday"); dayNames.add("Saturday"); days = dayNames.elements(); while (days.hasMoreElements()){ System.out.println(days.nextElement()); } } }

以上实例编译运行结果如下:

SundayMondayTuesdayWednesdayThursdayFridaySaturday

 

 

使用枚举实现单例的好处:

1.避免在对象序列化后得出的对象不是同一个对象

序列化的原理是:任何一个readObject方法,不管是显式的还是默认的,它都会返回一个新建的实例,这个新建的实例不同于该类初始化时创建的实例

 

2.避免反射攻击

常规的单例模式(例如:饿汉式,懒汉式,双重锁)在反射攻击下都会失效,而使用枚举可以有效避免反射攻击

单例模式实现的最佳方式:

示例:

public enum Singleton {    INSTANCE;    public Singleton getInstance(){        return INSTANCE;    }}

 

 

 

参考:

枚举有关资料

枚举的好处

转载地址:http://efcgi.baihongyu.com/

你可能感兴趣的文章
usb BC1.2的三种端口
查看>>
linux下的"BusHound"——usb_mon非常好
查看>>
linux usb枚举过程分析【host】
查看>>
android之通过USB插拔流程来了解android UEvent
查看>>
[RK3288][Android6.0] USB 枚举过程小结
查看>>
CarPlay简介
查看>>
CarPlay介绍
查看>>
CarPlay wireless(蓝牙+WiFi)连接方案(蓝牙部分)
查看>>
CarPlay wireless(蓝牙+WiFi)连接方案(Wi-Fi部分)
查看>>
CarPlay wired连接与wireless连接相互切换
查看>>
USB linux NCM usbnet驱动详解
查看>>
USB OTG规范的SRP和HNP协议
查看>>
usb驱动的层次结构简述
查看>>
控制Linux内核启动中的打印
查看>>
创建一个简单的debugfs文件系统节点
查看>>
创建一个procfs文件系统的节点
查看>>
高通平台手机开发之Sensor
查看>>
Android4.x 如何处理Power按键
查看>>
创建一个简单的device_create_file文件节点
查看>>
android linux 休眠 深度睡眠 查看 方法 调试
查看>>