EnumMap和EnumSet:
1、EnumMap:
这两个类在java.util包中;
import java.util.EnumMap;
import java.util.Map;
enum Color{
RED,GREEN,BLUE;
}
public class Demo{
public static void main(String args[]){
Map<Color,String> desc=null;
desc=new EnumMap<Color,String>(Color.class);
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.println(c.name()+"、");
}
System.out.println("=========输出全部的内容========");
for(String s:desc.values()){
System.out.println(s+"、");
}
}
}
2、EnumSet是set的接口的子类,所以里面的内容不能重复;
EnumSet不能使用new为其进行实例化---(EnumSet是抽象类)
将全部的集合设置到EnumSet集合中去;
import java.util.EnumSet;
enum Color{
RED,GREEN,BLUE;
}
public class Demo{
public static void main(String args[]){
EnumSet<Color> es=null;
System.out.println("=====EnumSet.allOf(Color.class)=====");
es=EnumSet.allOf(Color.class);//将枚举的全部类型设置到EnumSet中去
print(es);
}
public static void print(EnumSet<Color> temp){
for(Color c:temp){
System.out.print(c+"、");
}
System.out.println();
}
}
只设置一个内容到集合中去:
import java.util.EnumSet;
enum Color{
RED,GREEN,BLUE;
}
public class Demo{
public static void main(String args[]){
EnumSet<Color> es=null;
System.out.println("=====EnumSet.of(Color.BLUE)=====");
es=EnumSet.of(Color.BLUE);
print(es);
}
public static void print(EnumSet<Color> temp){
for(Color c:temp){
System.out.print(c+"、");
}
System.out.println();
}
}
创建只能放入指定枚举类型的集合:
可能有多个枚举,但是只能放入指定类型的枚举;
import java.util.EnumSet;
enum Color{
RED,GREEN,BLUE;
}
public class Demo{
public static void main(String args[]){
EnumSet<Color> es=null;
System.out.println("=====EnumSet.noneOf(Color.class)=====");
es=EnumSet.noneOf(Color.class);
es.add(Color.RED);
es.add(Color.GREEN);
print(es);
}
public static void print(EnumSet<Color> temp){
for(Color c:temp){
System.out.print(c+"、");
}
System.out.println();
}
}
创建不包含指定元素的集合:
import java.util.EnumSet;
enum Color{
RED,GREEN,BLUE;
}
public class Demo{
public static void main(String args[]){
EnumSet<Color> esOld=null;
EnumSet<Color> esNew=null;
System.out.println("=====EnumSet.complementOf(EnumSet<Color> e)=====");
esOld=EnumSet.noneOf(Color.class);
esOld.add(Color.RED);
esOld.add(Color.GREEN);
esNew=EnumSet.complementOf(esOld);//包含指定内容及此时只有BLUE
print(esNew);
}
public static void print(EnumSet<Color> temp){
for(Color c:temp){
System.out.print(c+"、");
}
System.out.println();
}
}
还可以拷贝一个集合的内容:
import java.util.EnumSet;
enum Color{
RED,GREEN,BLUE;
}
public class Demo{
public static void main(String args[]){
EnumSet<Color> esOld=null;
EnumSet<Color> esNew=null;
System.out.println("=====EnumSet.copyOf(Color.class)=====");
esOld=EnumSet.noneOf(Color.class);
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){
System.out.print(c+"、");
}
System.out.println();
}
}