第三部分java应用程序设计枚举类集对enum的支持_第1页
第三部分java应用程序设计枚举类集对enum的支持_第2页
第三部分java应用程序设计枚举类集对enum的支持_第3页
第三部分java应用程序设计枚举类集对enum的支持_第4页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论