TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
Level是一个简单的枚举示例:A/B/C/D代表四个等级
package java5study;
public enum Level {
A, B, C, D;
public void showAll() {
Level[] lv = Level.values();
// 这是Java5中新增的for语句,用于数组类型的for循环
for (Level l : lv) {
System.out.println("value:" + l);
System.out.println("ordinal:" + l.ordinal());
}
}
}
其它类中,可以使用Level枚举类型:
package java5study;
/**
* 该类中使用了Level枚举类型
*
* @author pengch
*
*/
public class UseLevel {
private String name;
private Level level;
public Level getLevel() {
return level;
}
public void setLevel(Level level) {
this.level = level;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(this.name);
sb.append(" 的Level是 ");
sb.append(this.level);
return sb.toString();
}
public static void main(String[] args) {
UseLevel ul = new UseLevel();
ul.setLevel(Level.A);
ul.setName("一");
System.out.println(ul.toString());
// 枚举类型可以比较,大小关系是以枚举类型中原始排列各个值元素的顺序为依据的
// 在Level中,A<B<C<D
if (Level.A.compareTo(Level.B) > 0) {
System.out.println("A大于B");
} else if (Level.A.compareTo(Level.B) == 0) {
System.out.println("A等于B");
} else if (Level.A.compareTo(Level.B) < 0) {
System.out.println("A小于B");
}
// 枚举值的列举
ul.getLevel().showAll();
}
}
运行结果:
C:java>java UseLevel
一 的Level是 A
A小于B
value:A
ordinal:0
value:B
ordinal:1
value:C
ordinal:2
value:D
ordinal:3
Java5中提供了EnumMap<K extends Enum<K>,V>和EnumSet<E extends Enum<E>>两个集合类型,都是专门针对枚举类型的:
package java5study;
import java.util.EnumMap;
/**
* <p>
* 演示Java5中EnumMap的使用
* </p>
*
* @author pengch
*
*/
public class LevelMap {
public static void main(String[] args) {
EnumMap<Level, String> levelMap = new EnumMap<Level, String>(
Level.class);
levelMap.put(Level.A, "A级");
levelMap.put(Level.B, "B级");
levelMap.put(Level.C, "C级");
levelMap.put(Level.D, "D级");
for (Level lv : Level.values()) {
System.out.println(lv + ":" + levelMap.get(lv));
}
}
}
运行结果: C:java>java LevelMap
A:A级
B:B级
C:C级
D:D级
源码下载:http://file.javaxxz.com/2014/10/29/235711671.zip |
|