`

java枚举之EnumSet and EnumMap

 
阅读更多

一:EnumSet

import java.util.*;
class EnumSetTest 
{
    //先要有枚举类型
    enum FontConstant{ plain,bold,italic }
    public static void main(String[] args) 
    {
        //调用static函数Enum.of()**
        EnumSet<FontConstant> es = EnumSet.of(FontConstant.plain);//,FontConstant.bold);
        Iterator it = es.iterator();
        while( it.hasNext() )
            System.out.println(it.next());
        System.out.println( EnumSet.complementOf(es) );//static function againg****

        //EnumSet是抽象的,无法实例化
/*        EnumSet<FontConstant> es4 = new EnumSet<FontConstant>(FontConstant.class);
        Iterator it2 = es4.iterator();
        while( it2.hasNext() )
            System.out.println(it2.next());
*/

        //先建立空的枚举set
        EnumSet<FontConstant> es2 = EnumSet.noneOf(FontConstant.class);//static function againg***
        es2.add(FontConstant.plain);//再自己添加
        System.out.println( EnumSet.complementOf(es2) );//输出补集

        ArrayList<FontConstant> al = new ArrayList<FontConstant>();
        al.add(FontConstant.plain);
        al.add(FontConstant.italic);
        //从List里复制内容
        EnumSet<FontConstant> es3 = EnumSet.copyOf(al);//static function againg***
        System.out.println( EnumSet.complementOf(es3) );//static function againg****

    }
}

 

二:EnumMap

package com.shengsiyuan.jdk5;

import java.util.EnumMap;
import java.util.Map;

public class EnumMapDemo
{
	public static void main(String[] args)
	{
		Map<Action, String> map = new EnumMap<Action, String>(Action.class);

		map.put(Action.TURN_RIGHT, "向右转");
		map.put(Action.SHOOT, "射击");
		map.put(Action.TURN_LEFT, "向左转");

		for (Action action : Action.values())
		{
			System.out.println(map.get(action));
		}
	}
}

enum Action
{
	TURN_LEFT, TURN_RIGHT, SHOOT;
}

 

 

分享到:
评论

相关推荐

    说说Java中的枚举 转 可以了,够了 包括EnumSet(Map)

    NULL 博文链接:https://mlaaalm.iteye.com/blog/694720

    java集合-EnumSet的使用

    EnumSet 是 Java 中用于存储枚举类型元素的集合类。它是 AbstractSet 的子类,并专门为枚举类型设计,提供了高效的实现。 下面是关于 EnumSet 的一些重要信息: 存储枚举元素:EnumSet 只能存储同一个枚举类型的...

    高级编程-java实验报告.docx

    实验目的及要求 1) 掌握Java集合框架的概念以及几种具体实现:ArrayList, LinkedList, HashSet, TreeSet, PriorityQueue; 2) 掌握Java集合框架的映射的概念以及映射的...3)枚举类型的使用,EnumSet和EnumMap的使用;

    Java期末复习——枚举与反射机制

    Java——枚举: enum关键字、Enum类 类集对枚举的支持——EnumMap类与EnumSet类 枚举类实现接口、在枚举类中定义抽象方法 Java反射机制: Class类、Class类的使用 反射的应用:取得类的结构

    Java枚举(深刻而不深沉平淡而不平庸)

    1.枚举概述 2.枚举的常用方法 3.枚举的特性 4.枚举实现接口和类 5.Switch状态机,组织枚举,策略枚举 6.EnumSet和EnumMap 原创文章 56获赞 82访问量 5515 关注 私信 展开阅读全文 作者:陌路逢君 唯图一笑

    Java EnumSet工作原理初窥

    EnumSet是Java枚举类型的泛型容器,Java既然有了SortedSet、TreeSet、HashSet等容器,为何还要多一个EnumSet呢?答案肯定是EnumSet有一定的特性,举个例子,EnumSet的速度很快。其他特性不一一列举了,毕竟本文的...

    用枚举值管理项目字典的实战应用(适配器模式)(代码示例)

    用枚举值管理项目字典的实战应用(适配器模式)(代码示例) 枚举值相比常量的优势 应用场景 模拟代码实现 ...常量需要用到反射,而枚举的EnumSet提供了直接遍历的方法。 1.4 离散值面向对象,方便程序调用。

    Java中EnumSet代替位域代码详解

    主要介绍了Java中EnumSet代替位域代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    一文弄懂EnumMap和EnumSet

    一文弄懂EnumMap和EnumSet 简介 一般来说我们会选择使用HashMap来存储key-value格式的数据,考虑这样的特殊情况,一个HashMap的key都来自于一个Enum类,这样的情况则可以考虑使用本文要讲的EnumMap。 EnumMap 先看...

    java实现高效的枚举元素集合示例

    Set是Java集合类的重要组成部分,它用来存储不能重复的对象。枚举类型也要求其枚举元素各不相同。看起来枚举类型和集合是很相似的。然而枚举类型中的元素不能随意的增加、删除,作为集合而言,枚举类型非常不实用。...

    Java实现高效的枚举元素集合

    Set是Java集合类的重要组成部分,它用来存储不能重复的对象。枚举类型也要求其枚举元素各不相同。看起来枚举类型和集合是很相似的。然而枚举类型中的元素不能随意的增加、删除,作为集合而言,枚举类型非常不实用。...

    疯狂JAVA讲义

    学生提问:为什么有栈内存和堆内存之分? 93 4.6.2 基本类型数组的初始化 95 4.6.3 引用类型数组的初始化 96 4.6.4 没有多维数组 99 学生提问:我是否可以让图4.13中灰色覆盖的数组元素再次指向另一个数组?这样...

    阅读EnumSet抽象类

    主要介绍了阅读EnumSet抽象类源码,具有一定参考价值,需要的朋友可以了解下。

    enumset-用于创建紧凑的枚举集的库-Rust开发

    enumset一个用于定义可在紧凑位集中使用的枚举的库。 它支持最多128个变量的枚举,并具有在枚举中使用这些集合的宏。用于定义可在紧凑位集中使用的枚举的库。 它支持最多128个变量的枚举,并具有一个宏以在常量中...

    Effective Java 3rd edition(Effective Java第三版英文原版)附第二版

    Item 37: Use EnumMap instead of ordinal indexing Item 38: Emulate extensible enums with interfaces Item 39: Prefer annotations to naming patterns Item 40: Consistently use the Override annotation Item...

    Options:有时在某些情况下,您想在OptionSet中使用Enum或希望Enum由Raw的Int类型支持,但同时也具有String标签

    目录介绍特征安装用法设置一个MappedValueRepresentable枚举使用MappedValueCollectionRepresented 使用MappedEnum类型的可编码枚举在ESet中使用OptionSet中的EnumSet 将EnumSet转换为Enum数组使用...

    Java开发技术大全 电子版

    11.2.9枚举集(EnumSet)使用示例358 11.3常用算法361 11.3.1Collections中的简单算法361 11.3.2排序362 11.3.3二分查找364 11.4遗留的类和接口366 11.4.1Enumeration接口简介366 11.4.2向量类(Vector)使用...

    Thinking in Java 4th Edition

    Java SE5 and SE6 .................. 2 Java SE6 ......................................... 2 The 4th edition........................ 2 Changes .......................................... 3 Note on the ...

    android_external_square_javawriter

    Java作家JavaWriter是一个实用程序类,可帮助生成Java源文件。 在执行诸如批注处理或与元数据文件(例如,数据库架构,协议格式)交互之类的操作时,源文件的生成可能会很有用。 通过生成代码,您无需编写样板文件,...

Global site tag (gtag.js) - Google Analytics