【枚举】_类集对Enum的支持笔记
来源:互联网 发布:淘宝卖家补偿 质量 编辑:程序博客网 时间:2024/05/12 19:47
【枚举】_类集对Enum的支持笔记
分类: Java
【枚举】_类集对Enum的支持笔记
本章目标:
掌握EnumMap类的使用
掌握EnumSet类的使用
3、具体内容
3.1、EnumMap
定义格式:
public class EnumMap<K extends Enum<K>,V>
extends AbstractMap<K,V>
implements Serializable,Cloneable
范例:
3.2、EnumSet
EnumSet是Set接口的子类,所以里面的内容是无法重复的,在使用EnumSet的时候是不能直接使用关键字new为其进行实例化的,所以在此类中提供了很多的静态方法。
依次验证EnumSet类的方法
范例:将全部的集合设置到EnumSet集合之中。
范例:只设置一个内容到集合
创建只能放入指定枚举类型的集合
可能同时有多个类型的枚举对象,但是一个集合中只要求放入指定类型的枚举。
还可以创建不包含制定元素的集合。
还可以拷贝一个集合的内容
总结:
1、EnumMap和EnumSet,EnumMap是符合Map的操作形式的,而EnumSet基本上就是使用静态方法完成。
2、在操作中大量的使用了枚举.class,这个属于Java反射机制。
本章目标:
掌握EnumMap类的使用
掌握EnumSet类的使用
3、具体内容
3.1、EnumMap
定义格式:
public class EnumMap<K extends Enum<K>,V>
extends AbstractMap<K,V>
implements Serializable,Cloneable
范例:
- import java.util.EnumMap;
- import java.util.Map;
- enum Color{
- RED,GREEN,BLUE;
- }
- public class EnumMapDemo{
- public static void main(String args[]){
- Map<Color,String> desc = null;
- desc = new EnumMap<Color,String>(Color.class);//实例化EnumMap对象
- 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.print(c.name()+"、");
- }
- System.out.println();
- System.out.println("=====输出全部的内容=====");
- for(String s:desc.values()){
- System.out.println(s+"、");
- }
- }
- }
3.2、EnumSet
EnumSet是Set接口的子类,所以里面的内容是无法重复的,在使用EnumSet的时候是不能直接使用关键字new为其进行实例化的,所以在此类中提供了很多的静态方法。
依次验证EnumSet类的方法
范例:将全部的集合设置到EnumSet集合之中。
- import java.util.EnumSet;
- enum Color{
- RED,GREEN,BLUE;
- }
- public class EnumSetDemo01{
- 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 EnumSetDemo02{
- public static void main(String args[]){
- EnumSet<Color> es = null;
- System.out.println("====EnumSet.of(Color.BLUE)======");
- es = EnumSet.of(Color.BLUE);//将枚举的一个内容设置到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 EnumSetDemo03{
- public static void main(String args[]){
- EnumSet<Color> es = null; //声明一个EnumSet对象
- System.out.println("=====EnumSet.noneOf(Color.class)======");
- es = EnumSet.noneOf(Color.class);//将枚举的全部类型设置到EnumSet对象之中
- 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 EnumSetDemo04{
- public static void main(String args[]){
- EnumSet<Color> esOld = null;
- EnumSet<Color> esNew = null;
- System.out.println("====EnumSet.complementOf(Color.class)====");
- esOld = EnumSet.noneOf(Color.class);
- esOld.add(Color.RED);
- esOld.add(Color.GREEN);
- esNew = EnumSet.complementOf(esOld); //不包括指定内容
- print(esNew);
- }
- public static void print(EnumSet<Color> temp){
- for(Color c:temp){ // 循环输出EnumSet中的内容
- System.out.print(c+"、");
- }
- System.out.println();
- }
- }
还可以拷贝一个集合的内容
- import java.util.EnumSet;
- enum Color{
- RED,GREEN,BLUE;
- }
- public class EnumSetDemo05{
- 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();
- }
- }
总结:
1、EnumMap和EnumSet,EnumMap是符合Map的操作形式的,而EnumSet基本上就是使用静态方法完成。
2、在操作中大量的使用了枚举.class,这个属于Java反射机制。
0 0
- 【枚举】_类集对Enum的支持笔记
- 【枚举】_类集对Enum的支持笔记
- 枚举 _类集对Enum的支持
- 枚举:集合对enum的支持,EnumSet,EnumMap
- 枚举---java类集对枚举的支持
- 【JavaSE学习笔记】SE完结_反射机制,枚举Enum
- Enum枚举类的使用。
- 枚举类enum的应用
- python的枚举类 Enum
- enum枚举类的使用
- 19---java中枚举03(类集对枚举的支持)
- java之枚举类 Enum学习笔记
- 枚举 Enum学习笔记
- 枚举Enum学习笔记
- 5.9 enum--支持枚举类型
- enum[枚举]_基本特性
- JDK5新特性_通过enum实现枚举类
- 【枚举】_枚举的作用笔记
- 〖JAVA IO〗_实例操作—单人信息管理程序笔记
- 〖JAVA IO〗_实例操作:投票程序笔记
- 【算法】_007_二分查找
- 【枚举】_枚举的作用笔记
- 【枚举】_Enum笔记
- 【枚举】_类集对Enum的支持笔记
- 【枚举】_枚举的其他应用笔记
- 【算法】_009_插入排序_二分查找优化
- 【Java反射机制】_认识Class类笔记
- MySQL update不能直接使用select的结果
- Linux下修改ssh端口和禁止root远程登录
- 【Java反射机制】_Class类的使用笔记
- 【算法】_008_归并排序_ 插入法优化
- 数据库设计技巧(转载自eason)