枚举详解
来源:互联网 发布:linux服务器配置nodejs 编辑:程序博客网 时间:2024/06/08 00:04
在JDK1.5之前,JAVA可以有两种方式定义新类型:类和接口,对于大部分面向对象编程,有这两种似乎就足够了,但是在一些特殊情况就不合适。例如:想要定义一个Color类,它只能有Red,Green,Blue三种,其他值则是错误,在JDK1.5之后便引入枚举类型。
枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。
public enum Color{ RED,GREEN,BLUE ; // 定义三个枚举的类型};
枚举中有三个取值,以后再取的时候,只能从这三个内容取
public class GetEnumContent{ public static void main(String args[]){ Color c = Color.BLUE ; // 取出蓝色 System.out.println(c) ; }};
可以直接使用在Switch语句上
public class SwitchPrintEnum{ public static void main(String args[]){ for(Color c:Color.values()){ // 输出枚举中的全部内容 print(c) ; } } public static void print(Color color){ switch(color){ case RED:{ System.out.println("红颜色") ; break ; } case GREEN:{ System.out.println("绿颜色") ; break ; } case BLUE:{ System.out.println("蓝颜色") ; break ; } default:{ System.out.println("未知颜色") ; break ; } } }};
使用enum关键字可以定义一个枚举,也可以定义一个Eunm类
枚举类的操作方法:
在枚举已经实现Comparable接口,所以在枚举中的内容可以排序。
案列一
import java.util.Iterator;import java.util.Set ;import java.util.TreeSet ;enum Color{ RED,GREEN,BLUE ;}public class ComparableEnum{ public static void main(String args[]){ Set<Color> t = new TreeSet<Color>() ; // 设置类型 t.add(Color.GREEN) ; // 加入绿色 t.add(Color.RED) ; // 加入红色 t.add(Color.BLUE) ; // 加入蓝色 Iterator<Color> iter = t.iterator() ; while(iter.hasNext()){ System.out.print(iter.next() + "、") ; } }};
案列二
使用EnumMap
import java.util.EnumMap ;import java.util.Map ;enum Color{ RED , GREEN , BLUE ;}public class EnumMapDemo{ public static void main(String args[]){ Map<Color,String> desc = null ; // 定义Map对象,同时指定类型 desc = new EnumMap<Color,String>(Color.class) ; // 实例化EnumMap对象 desc.put(Color.RED,"红色") ; desc.put(Color.GREEN,"绿色") ; desc.put(Color.BLUE,"蓝色") ; System.out.println("====== 输出全部的内容 ======") ; for(Color c:Color.values()){ System.out.println(c.name() + " --> " + desc.get(c)) ; } System.out.println("====== 输出全部的键值 ======") ; for(Color c:desc.keySet()){ System.out.print(c.name() + "、") ; } System.out.println() ; System.out.println("====== 输出全部的内容 ======") ; for(String s:desc.values()){ System.out.print(s + "、") ; } }};
案列三
使用 EnumSet
import java.util.EnumSet ;enum Color{ RED , GREEN , BLUE ;}public class EnumSetDemo{ public static void main(String args[]){ EnumSet<Color> esOld = null ; // 声明一个EnumSet对象 EnumSet<Color> esNew = null ; System.out.println("======== EnumSet.copyOf(Color.class) =====") ; esOld = EnumSet.noneOf(Color.class) ; // 将枚举的全部类型设置到EnumSet对象之中 esOld.add(Color.RED) ; // 增加内容 esOld.add(Color.GREEN) ; // 增加内容 esNew = EnumSet.copyOf(esOld) ; // 从已有的集合拷贝过来 print(esNew) ; } public static void print(EnumSet<Color> temp){ // 专门的输出操作 for(Color c:temp){ // 循环输出EnumSet中的内容 System.out.print(c + "、") ; } System.out.println() ; }};
0 0
- 枚举详解
- 枚举详解
- 枚举详解
- 枚举详解
- java枚举使用详解
- java枚举使用详解
- java枚举使用详解
- java 枚举用法详解
- JAVA 枚举详解
- 枚举,泛型详解
- java枚举使用详解
- Java枚举的详解
- java 枚举用法详解
- java枚举使用详解
- 枚举类型详解
- java枚举详解实例
- 枚举用法详解
- 枚举用法详解
- 史上最全WebView使用,附送Html5Activity一份
- [JZOJ100004]【NOI2017模拟.4.1】 Dice
- 2015年蓝桥杯c/c++B组
- Spring(三):Spring注入方式
- 蓝桥杯2014年第五届省赛C/C++程序设计本科B组
- 枚举详解
- 异常
- 微信小程序 wx.navigateTo 应用
- 2017社招面试编程题
- 流媒体-RTMP交互过程及协议解析
- 标签时间转换器(几秒前,几分前,几小时前...)
- 动态配置Silverlight调用WCF
- 用C语言完成一个链表,同时又有好多知识点需要复习
- C绝对值