JAVA中enum的常见用法
JAVA中enum的常见用法包括:定义并添加方法、switch、遍历、EnumSet、EnumMap
1.定义enum并添加或覆盖方法
public Interface Behaviour{
void print();
}
enum Color implements Behaviour{
RED("red",1),GREEN("green",2),BLUE("blue",3);//注意这里有个分号 private String name;
private int index;
private Color(String name,int index){
this.name = name;
this.index = index;
}
public static String getName(int index){
for(Color color : Color.values()){
if(color.index == index)
return color.name;
}
return null;
}
public String toString(){//覆写toString()方法
return this.index + ":" + this.name;
}
public String getInfo(){
return this.name;
}
}
①这个Color枚举类是个final class,不能被继承,它本身是继承自Enum;
②这些枚举值是Color对象,而且是static final修饰的;
③valueOf(String)方法,返回带指定名称的指定枚举类型的枚举常量。
2.switch和enum的遍历
public static void main(String[] args) { Color c = Color.valueOf("BLUE");
switch(c){
case RED:
System.out.println(c);
case BLUE:
System.out.println(c);
} for(Color color : Color.values()){
System.out.println(color.toString());
}
}
switch其实是支持int基本类型,而因为byte,short,char可以向上转换为int,所以switch也支持它们,但long因为转换int会截断便不能支持。
3.EnumSet和EnumMap的用法
public static void main(String[] args) {
EnumSet<Color> es = EnumSet.allOf(Color.class);
for(Color color : es){
System.out.println(color);
} EnumMap<Color,String> colorMap = new EnumMap<Color, String>(Color.class);
colorMap.put(Color.RED, "red");
colorMap.put(Color.GREEN, "green");
}
EnumMap的key是enum,value是任何其他Object对象。
参考资料:
http://android.blog.51cto.com/268543/563950
http://blog.csdn.net/mqboss/article/details/5647851
JAVA中enum的常见用法的更多相关文章
- Java中枚举的常见用法
在JDK1.5以后引入了一种新的类型,就是枚举(enum).enum是用来声明枚举类型数据,它可以像数组一样存储许多的元素,但是不同于数组的是,它除了数字不能存储以外, 其他类型的如字母.特殊符号.汉 ...
- K:java中枚举的常见用法
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.....现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. ...
- Guava中Predicate的常见用法
Guava中Predicate的常见用法 1. Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- Java中Date各种相关用法
Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ...
- 巨人大哥谈Java中的Synchronized关键字用法
巨人大哥谈Java中的Synchronized关键字用法 认识synchronized 对于写多线程程序的人来说,经常碰到的就是并发问题,对于容易出现并发问题的地方价格synchronized基本上就 ...
- Java中Class类及用法
Java中Class类及用法 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI.这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方 ...
- JAVA中mark()和reset()用法
根据JAVA官方文档的描述,mark(int readlimit)方法表示,标记当前位置,并保证在mark以后最多可以读取readlimit字节数据,mark标记仍有效.如果在mark后读取超过rea ...
- java中class,public的用法
java中class,public的用法 一.Java访问权限饰词(access specifiers) Java有public.protect.friendly.private四种访问权限,并且这四 ...
随机推荐
- PHP - 代码分离
总代码: <?php /* * Version:1.0 * CreateTime:2015年11月11日 * Author:HF_Ultrastrong *///引入公共文件,在公共文件中创建, ...
- C#基础 大盘点
类型转换 tryParse 字符和整形转换 转译符: /' 单引号 /" 双引号 // 反斜杠 /0 空字符 /a 感叹号( ...
- c语言: Standard C 语言标准函数库
Standard C 语言标准函数库速查 (Cheat Sheet) http://ganquan.info/standard-c/ c语言标准头: <assert.h> 断言 <c ...
- BZOJ 1257: [CQOI2007]余数之和sum( 数论 )
n >= k 部分对答案的贡献为 k * (n - k) n < k 部分贡献为 ∑ (k - ⌊k / i⌋ * i) = ∑ , ⌊k / i⌋ 相等的数是连续的一段, 此时这段连 ...
- MySQL推出Applier,可实时复制数据到Hadoop
MySQL复制操作可以将数据从一个MySQL服务器(主)复制到其他的一个或多个MySQL服务器(从).试想一下,如果从服务器不再局限为一个MySQL服务器,而是其他任何数据库服务器或平台,并且复制事件 ...
- SRM589 DV1 250 回文字符串
其实这道题挺简单的,不过刚开始我钻了一个错误的死胡同.想明白之后才发现. 题目要求用最少的时间来将一个字符串变成回文字符串.(具体题目参看topcoder srm589 DV1 250分值的题目,不便 ...
- 遍历关联数组 index by varchar2
--字符串序列要这样 declare type t is table of number(3) index by varchar2(3); hash_t t; l_row ...
- PEM文件格式具体解析
PEM文件格式存档 Author:Roson sun sunxiao@tomonline-inc.com Time:2006-4-11 1. 描写叙述: Openssl使用PEM(RFC 1421- ...
- linux命令:rm
删文件要一个个回答y,谁有好办法自动删除? rm -rf 用rm递归删除目录下面的所有.o文件: find . -name "*.o" | xargs rm -f :
- SSH2三大框架整合出错(四)
<%@taglib prefix="c" uri="http://java.sun.com/jsf/core" %> usage: java org ...