您的位置:首页 > 编程语言 > Java开发

Java enum的集合用法

2015-10-09 20:25 549 查看
import java.util.EnumMap;
import java.util.EnumSet;
public class LightTest {

// 1.定义枚举类型

public enum Light {

// 利用构造函数传参

RED(1), GREEN(3), YELLOW(2);

// 定义私有变量

private int nCode;

// 构造函数,枚举类型只能为私有

private Light(int _nCode) {

this.nCode = _nCode;

}

@Override
public String toString() {

return String.valueOf(this.nCode);

}

}

/**
*
* @param args
*/

public static void main(String[] args) {

// 1.遍历枚举类型

System.out.println("演示枚举类型的遍历 ......");

testTraversalEnum();

// 2.演示EnumMap对象的使用

System.out.println("演示EnmuMap对象的使用和遍历.....");

testEnumMap();

// 3.演示EnmuSet的使用

System.out.println("演示EnmuSet对象的使用和遍历.....");

testEnumSet();

}

/**
*
* 演示枚举类型的遍历
*/

private static void testTraversalEnum() {

Light[] allLight = Light.values();

for (Light aLight : allLight) {

System.out.println("当前灯name:" + aLight.name());

System.out.println("当前灯ordinal:" + aLight.ordinal());

System.out.println("当前灯:" + aLight);

}

}

/**
*
* 演示EnumMap的使用,EnumMap跟HashMap的使用差不多,只不过key要是枚举类型
*/

private static void testEnumMap() {

// 1.演示定义EnumMap对象,EnumMap对象的构造函数需要参数传入,默认是key的类的类型

EnumMap<Light, String> currEnumMap = new EnumMap<Light, String>(

Light.class);

currEnumMap.put(Light.RED, "红灯");

currEnumMap.put(Light.GREEN, "绿灯");

currEnumMap.put(Light.YELLOW, "黄灯");

// 2.遍历对象

for (Light aLight : Light.values()) {

System.out.println("[key=" + aLight.name() + ",value="

+ currEnumMap.get(aLight) + "]");

}

}

/**
*
* 演示EnumSet如何使用,EnumSet是一个抽象类,获取一个类型的枚举类型内容<BR/>
*
* 可以使用allOf方法
*/

private static void testEnumSet() {

EnumSet<Light> currEnumSet = EnumSet.allOf(Light.class);

for (Light aLightSetElement : currEnumSet) {

System.out.println("当前EnumSet中数据为:" + aLightSetElement);

}

}

}
/*
*
* 演示枚举类型的遍历 ......
当前灯name:RED
当前灯ordinal:0
当前灯:1
当前灯name:GREEN
当前灯ordinal:1
当前灯:3
当前灯name:YELLOW
当前灯ordinal:2
当前灯:2
演示EnmuMap对象的使用和遍历.....
[key=RED,value=红灯]
[key=GREEN,value=绿灯]
[key=YELLOW,value=黄灯]
演示EnmuSet对象的使用和遍历.....
当前EnumSet中数据为:1
当前EnumSet中数据为:3
当前EnumSet中数据为:2

*
*
*
*/

转载自 http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: