版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA应用开发详解第14章:枚举
——类集对枚举的支持MLDN软件教学研发部本章目标掌握EnumMap类的使用掌握EnumSet类的使用类集对枚举的支持在JDK1.5的java.util程序包中提供两个新的集合操作类:EnumMap和EnumSet,这两个类与枚举类型的结合应用可使以前非常繁琐的程序变得简单方便。EnumSet类提供了java.util.Set接口的一个特殊实现,而EnumMap类提供了java.util.Map接口的一个特殊实现,该类中的键(key)是一个枚举类型。EnumMapEnumMap是Map接口的子类,所以本身还是以Map的形式进行操作,即:keyvalue。如果要想使用EnumMap,则首先要创建EnumMap的对象,在创建此对象时必须指定要操作的枚举类型,所以构造方法如下所示:publicEnumMap(Class<K>keyType)验证EnumMappackageorg.lxh.demo14.enumcol;importjava.util.EnumMap;importjava.util.Map;enumColor{
RED,GREEN,BLUE; //定义枚举的三个类型}public
classEnumMapDemo{
public
static
voidmain(String[]args){ Map<Color,String>desc=null; //定义一个Map对象
desc=newEnumMap<Color,String>(Color.class);//实例化EnumMap desc.put(Color.RED,"红色"); //加入一个内容
desc.put(Color.GREEN,"绿色"); //加入一个内容
desc.put(Color.BLUE,"蓝色"); //加入一个内容
System.out.println("=====输出全部的内容=====");
for(Colorc:Color.values()){ //取得全部的枚举
System.out.println(()+"-->"+desc.get(c)); } System.out.println("=====输出全部的键值=====");
for(Colorc:desc.keySet()){ //取得全部的key System.out.print(()+"、"); } System.out.println(); //换行
System.out.println("=====输出全部的内容=====");
for(Strings:desc.values()){ //取得全部的value System.out.print(s+"、"); }}}EnumSetEnumSet是Set接口的子类,所以里面的内容是无法重复的,在使用EnumSet的时候是不能直接使用关键字new为其进行实例化的,所以在此类中提供了很多的静态方法。EnumSet类的常用方法No.方法类型说明1publicstatic<EextendsEnum<E>>EnumSet<E>allOf(Class<E>elementType)普通将枚举中的全部内容设置到EnumSet之中2publicstatic<EextendsEnum<E>>EnumSet<E>of(Efirst,E...rest)普通创建一个包含枚举指定内容的EnumSet对象3publicstatic<EextendsEnum<E>>EnumSet<E>copyOf(Collection<E>c)普通创建一个从指定Collection中指定的EnumSet对象4publicstatic<EextendsEnum<E>>EnumSet<E>complementOf(EnumSet<E>s)普通创建一个其元素类型与指定枚举set相同的枚举set,最初包含指定集合中所不包含的此类型的所有元素5publicstatic<EextendsEnum<E>>EnumSet<E>noneOf(Class<E>elementType)普通创建一个可以接收指定类的空集合验证EnumSet——将全部的集合设置到EnumSet集合之中packageorg.lxh.demo14.enumcol;importjava.util.EnumSet;enumColor{
RED,GREEN,BLUE; //定义枚举的三个类型}public
classEnumSetDemo01{
public
static
voidmain(String[]args){ EnumSet<Color>es=null; //声明一个EnumSet对象
System.out.println("=====EnumSet.allOf(Color.class)====="); es=EnumSet.allOf(Color.class); //将枚举的全部类型设置到EnumSet对象之中
print(es); }
public
static
voidprint(EnumSet<Color>temp){ //专门的输出操作
for(Colorc:temp){ //循环输出EnumSet中的内容
System.out.print(c+"、"); } System.out.println(); }}验证EnumSet——只设置一个枚举的类型到集合之中packageorg.lxh.demo14.enumcol;importjava.util.EnumSet;enumColor{
RED,GREEN,BLUE; //定义枚举的三个类型}public
classEnumSetDemo02{
public
static
voidmain(String[]args){ EnumSet<Color>es=null; //声明一个EnumSet对象
System.out.println("=====EnumSet.of(Color.BLUE)====="); es=EnumSet.of(Color.BLUE); //设置一个枚举的内容
print(es); }
public
static
voidprint(EnumSet<Color>temp){ //专门的输出操作
for(Colorc:temp){ //循环输出EnumSet中的内容
System.out.print(c+"、"); } System.out.println(); }}验证EnumSet——创建只能放入指定枚举类型的集合packageorg.lxh.demo14.enumcol;importjava.util.EnumSet;enumColor{
RED,GREEN,BLUE; //定义枚举的三个类型}public
classEnumSetDemo03{
public
static
voidmain(String[]args){ EnumSet<Color>es=null; //声明一个EnumSet对象
System.out.println("=====EnumSet.noneOf(Color.class)====="); es=EnumSet.noneOf(Color.class); //创建一个可以加入Color类型的对象
es.add(Color.RED); //增加内容
es.add(Color.GREEN); //增加内容
print(es); }
public
static
voidprint(EnumSet<Color>temp){ //专门的输出操作
for(Colorc:temp){ //循环输出EnumSet中的内容
System.out.print(c+"、"); } System.out.println(); }}验证EnumSet——创建不包含指定元素的集合packageorg.lxh.demo14.enumcol;importjava.util.EnumSet;enumColor{ RED,GREEN,BLUE; //定义枚举的三个类型}publicclassEnumSetDemo04{ publicstaticvoidmain(String[]args){ EnumSet<Color>esOld=null; //声明一个EnumSet对象 EnumSet<Color>esNew=null; //声明一个EnumSet对象 esOld=EnumSet.noneOf(Color.class); //创建一个可以加入Color类型的对象 esOld.add(Color.RED); //增加内容 esOld.add(Color.GREEN); //增加内容 System.out.println("=====plementOf(es)====="); esNew=plementOf(esOld); //创建一个不包含指定元素的集合 print(esNew); } publicstaticvoidprint(EnumSet<Color>temp){ //专门的输出操作 for(Colorc:temp){ //循环输出EnumSet中的内容 System.out.print(c+"、"); } System.out.println(); }}验证EnumSet——拷贝已有的内容packageorg.lxh.demo14.enumcol;importjava.util.EnumSet;enumColor{
RED,GREEN,BLUE; //定义枚举的三个类型}public
classEnumSetDemo05{
public
static
voidmain(String[]args){ EnumSet<Color>esOld=null; //声明一个EnumSet对象
EnumSet<Color>esNew=null; //声明一个EnumSet对象
esOld=EnumSet.noneOf(Color.class); //创建一个可以加入Color类型的对象
esOld.add(Color.RED); //增加内容
esOld.add(Color.GREEN); //增加内容
System.out.println("=====EnumSet.copyOf(es)====="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业租赁合同的风险评估
- 茶楼茶叶技术转让合同
- 个人协作合同范例
- 书写工具订购合同
- 殡葬服务专业团队
- 保送承诺保证书
- 服务外包合同的项目规划
- 自动化生产设备选购
- 装修材料选购协议样本
- 电子招标文件的审批流程
- 2023-2024学年山东省威海市小学数学三年级下册期末评估试卷
- 危险化学品课件-危险化学品储存安全
- 2023年复旦大学军事理论题库
- GB/T 7549-2008球笼式同步万向联轴器
- GB/T 35658-2017道路运输车辆卫星定位系统平台技术要求
- GB/T 34898-2017微机电系统(MEMS)技术MEMS谐振敏感元件非线性振动测试方法
- 第6章 特征的提取与选择
- 新版2023设计收费标准
- 企业文化建设三年规划(最终稿)
- 公共部门决策的理论与方法第1-8章课件
- 茶文化知识-竞赛课件
评论
0/150
提交评论