package com.wl.dwr.test;
import java.util.EnumMap;
import java.util.EnumSet;
import java.util.Iterator;
import java.util.Map;
public enum ColorEnum
{
RED("red",100), GREEN("green",200),BLUE("blue",300);
private String name;
private int index;
private ColorEnum(String name, int index)
{
this.name = name;
this.index = index;
}
// 借助于Class类来遍历获取枚举值,提供方法.getEnumConstants()
public static String getEnumString(int index)
{
ColorEnum[] colorVal = ColorEnum.class.getEnumConstants();
for (ColorEnum colorEnum : colorVal)
{
if (index == colorEnum.index )
return colorEnum.name;
}
return null;
}
// 借助枚举类自身提供的方法来获取值
public static String getEnumString2(int index)
{
ColorEnum[] colorVal = ColorEnum.values();
for (ColorEnum colorEnum : colorVal)
{
if (index == colorEnum.index )
return colorEnum.name;
}
return null;
}
/**
* ColorEnum枚举类型是final class,不能被继承,它本身继承自Enum
* 这些枚举值是ColorEnum 对象,而且是static final修饰的
* valueOf(String) 返回带指定名称的指定枚举类型的枚举常量
* @param index
* @return String
*/
public static String getEnumString3()
{
String color = null;
ColorEnum c = ColorEnum.valueOf("RED");
switch(c)
{
case RED:
color = "red";
break;
case BLUE:
color = "blue";
break;
}
return color;
}
/**
* EnumSet 集合的使用
* <ColorEnum> EnumSet<ColorEnum> java.util.EnumSet.allOf(Class<ColorEnum> elementType)
* Creates an enum set containing all of the elements in the specified element type.
* @return String
*/
public static String getEnumString4(int index)
{
EnumSet<ColorEnum> es = EnumSet.allOf(ColorEnum.class);
for (ColorEnum color : es)
{
if (index == color.index)
return color.name;
}
return null;
}
/**
* java.util.EnumMap.EnumMap(Class<ColorEnum> keyType)
* Creates an empty enum map with the specified key type.
* Parameters:
* keyType the class object of the key type for this enum map
* Throws:
* NullPointerException if keyType is null
* @param index
* @return String
*/
public static String getEnumString5(int index)
{
EnumMap<ColorEnum,String> enumMap = new EnumMap<ColorEnum,String>(ColorEnum.class);
enumMap.put(ColorEnum.RED, "红灯");
enumMap.put(ColorEnum.GREEN, "绿灯");
enumMap.put(ColorEnum.BLUE, "蓝灯");
for (Iterator<Map.Entry<ColorEnum,String>> ite = enumMap.entrySet().iterator(); ite.hasNext();)
{
Map.Entry<ColorEnum,String> entry = (Map.Entry<ColorEnum,String>) ite.next();
// entry.getKey().index && entry.getKey().name
if (entry.getKey().index == index)
{
return entry.getValue();
}
}
return null;
}
public static void main(String[] args)
{
System.out.print(getEnumString5(100));
}
/**
* 这里复习下switch case语句:
* switch(表达式)
* { case 常量表达式1:
* 语句1;
* break;
* case 常量表达式2:
* 语句2;
* break;
* default:
* 语句;
* }
* 1.default就是如果没有符合的case就执行它,default并不是必须的.
* 2.case后的语句可以不用大括号.
* 3.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
* 4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
*/
}
java枚举和switch语法复习
最新推荐文章于 2023-06-15 19:19:05 发布