java类集对枚举类型的支持

类集对枚举类型的支持主要体现在枚举类型在类集中作为元素存在的情景:

—-1.EnumMap:
public class EnumMap,V>
extends AbstractMap
implements Serializable, Cloneable;// 既是Enum类型又是Map类型!
A specialized Map implementation for use with enum type keys. All of the keys in an enum map must come from a single enum type that is specified, explicitly or implicitly, when the map is created. Enum maps are represented internally as arrays. This representation is extremely compact and efficient.
package com.mldn;
import .util.Map;
import .util.EnumMap;
public class EnumMapDemo
{
        public static void main(String[] args)
        {
                Map enumMap = new EnumMap(Color.class);        //  实例化枚举映射
                enumMap.put(Color.RED, “红色”);        // 放置键值对
                enumMap.put(Color.BLUE, “蓝色”);
                enumMap.put(Color.GREEN, “绿色”);
                System.out.println(“输出全部内容:”);               
                for (Color c : Color.values())
                {
                        System.out.println(c.name() + “–>” + enumMap.get(c));        // 通过键值获取值
                }
                System.out.println(“输出所有键值:”);
                for (Color c : enumMap.keySet())
                {
                        System.out.print(c + ” “);        // 输出当前键值:Color枚举常量
                }
                System.out.println(“\n输出所有值:”);
                System.out.println(enumMap.values());               
        }
}
//———enum类:
enum Color
{
        RED, BLUE, GREEN;
}
/*
ubuntu@xu-desktop:~$ com.mldn.EnumMapDemo
输出全部内容:
RED–>红色
BLUE–>蓝色
GREEN–>绿色
输出所有键值:
RED BLUE GREEN
输出所有值:
[红色, 蓝色, 绿色]
*/
—-2.EnumSet:
public abstract class EnumSet>
extends AbstractSet
implements Cloneable, Serializable;// Set类型中不保存重复内容。
// EnumSet构造方法私有化了,一系列的static方法获取器实例;
—用枚举类型的所有可能值创建一个枚举集合:
public static > EnumSet allOf(Class elementType)
    Creates an enum set containing all of the elements in the specified element type.
package com.mldn;
import .util.EnumSet;
public class EnumSetDemo
{
        public static void main(String[] args)
        {
                EnumSet enumSet = null;        //  声明枚举集合
                System.out.println(“============EnumSet.allOf(Color.class)===============”);       
                enumSet = enumSet.allOf(Color.class);        // 把Color的所有常量作为枚举集合的元素
                print(enumSet);        // 输出所有元素
        }
        public static void print(EnumSet enumSet)
        {
                for (Color c : enumSet)
                {
                        System.out.println(c + ” “);
                }
        }
}
//———enum类:
enum Color
{
        RED, BLUE, GREEN;
}
/*
ubuntu@xu-desktop:~$ com.mldn.EnumSetDemo
============EnumSet.allOf(Color.class)===============
RED
BLUE
GREEN
*/   
———-用枚举类型的若干个常量设置枚举集合:

1.public static > EnumSet of(E e);// 该方法重载了,可以接收任意数量的枚举常量!
    Creates an enum set initially containing the specified element. Overloadings of this method exist to initialize an enum set with one through five elements. A sixth overloading is provided that uses the varargs feature. This overloading may be used to create an enum set initially containing an arbitrary number of elements, but is likely to run slower than the overloadings that do not use varargs.
2. public static > EnumSet of(E first,
                                                E… rest) ;// 重载可变参数
package com.mldn;
import java.util.EnumSet;
public class EnumSetDemo
{
        public static void main(String[] args)
        {
                EnumSet enumSet = null;        //  声明枚举集合
                System.out.println(“============EnumSet.Of(Color.RED)===============”);       
                enumSet = enumSet.of(Color.RED);        // 把Color的一个常量作为枚举集合的元素
                print(enumSet);        // 输出所有元素
                System.out.println(“============EnumSet.Of(Color.RED, Color.BLUE)===============”);
                enumSet = enumSet.of(Color.RED, Color.BLUE);        // 把Color的2个常量作为枚举集合的元素
                print(enumSet);        // 输出所有元素
                System.out.println(“============EnumSet.Of(Color.RED, Color.BLUE, Color.GREEN)===============”);
                enumSet = enumSet.of(Color.RED, Color.BLUE, Color.GREEN);        // 把Color的3个常量作为枚举集合的元素
                print(enumSet);        // 输出所有元素
        }
        public static void print(EnumSet enumSet)
        {
                for (Color c : enumSet)
                {
                        System.out.println(“\t  ” + c);
                }
        }
}
//———enum类:
enum Color
{
        RED, BLUE, GREEN;
}
/*
ubuntu@xu-desktop:~$ java com.mldn.EnumSetDemo
============EnumSet.Of(Color.RED)===============
          RED
============EnumSet.Of(Color.RED, Color.BLUE)===============
          RED
          BLUE
============EnumSet.Of(Color.RED, Color.BLUE, Color.GREEN)===============
          RED
          BLUE
          GREEN
*/   
——创建一个空枚举集合实例:并按集合操作添加元素;
public static > EnumSet noneOf(Class elementType)
    Creates an empty enum set with the specified element type.
package com.mldn;
import java.util.EnumSet;
public class EnumSetDemo
{
        public static void main(String[] args)
        {
                EnumSet enumSet = null;        //  声明枚举集合
                System.out.println(“============EnumSet.nonOf(Color.class)===============”);       
                enumSet = enumSet.noneOf(Color.class);        // 创建一个元素为Color类型的空的枚举集合实例
                enumSet.add(Color.RED);        // 添加元素
                enumSet.add(Color.BLUE);
                enumSet.add(Color.GREEN);
                print(enumSet);        // 输出所有元素
        }
        public static void print(EnumSet enumSet)
        {
                for (Color c : enumSet)
                {
                        System.out.print(“\t  ” + c);
                }
                System.out.println();        // 换行
        }
}
//———enum类:
enum Color
{
        RED, BLUE, GREEN;
}
/*
============EnumSet.nonOf(Color.class)===============
          RED          BLUE          GREEN
*/   
———-创建不包含指定范围枚举常量的枚举集合:指定枚举集合的补集;
public static > EnumSet complementOf(EnumSet s);// 指定集合的补集
    Creates an enum set with the same element type as the specified enum set, initially containing all the elements of this type that are not contained in the specified set.
package com.mldn;
import java.util.EnumSet;
public class EnumSetDemo
{
        public static void main(String[] args)
        {
                EnumSet eSetOld = null;        //  声明枚举集合
                EnumSet eSetNew = null;       
                System.out.println(“============EnumSet.nonOf(Color.class)===============”);       
                eSetOld = eSetOld.noneOf(Color.class);        // 创建一个元素为Color类型的空的枚举集合实例
                eSetOld.add(Color.RED);        // 添加元素
                print(eSetOld);        // 输出所有元素
                System.out.println(“============EnumSet.complementOf(EnumSet)===============”);       
                eSetNew = eSetNew.complementOf(eSetOld);        // 创建枚举集合eSetOld的补集
                print(eSetNew);        // 输出所有元素
        }
        public static void print(EnumSet enumSet)
        {
                for (Color c : enumSet)
                {
                        System.out.print(“\t  ” + c);
                }
                System.out.println();        // 换行
        }
}
//———enum类:
enum Color
{
        RED, BLUE, GREEN;
}
/*
============EnumSet.nonOf(Color.class)===============
          RED
============EnumSet.complementOf(EnumSet)===============
          BLUE          GREEN
*/   

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《java类集对枚举类型的支持
本文地址:https://www.zhiletu.com/archives-133.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微