37、EnumSet详解

  EnumSet类也是有顺序的,EnumSet按照枚举值在Enum类内定义的顺序决定集合元素的顺序

  EnumSet在内部已位向量的形式存储,这种存储方式非常紧凑、搞笑,因此EnumSet占用内存很小,而且运行效率很好。

  EnumSet集合不允许加入null元素

  EnumSet常用的方法:

  1)、EnumSet allOf(Class elementType):创建一个包含指定枚举类里所有枚举值得EnumSet集合

  2)、EnumSet complementOf(EnumSet s):创建一个气元素类型和指定EnumSet元素类型相同的EnumSet集合,新的ENumSet集合包含原EnumSet集合所有不包含的元素。也就是新的EnumSet集合和指定的EnumSet集合元素相加即为该枚举类里的所有元素

  3)、EnumSet copyOf(Collection c):使用一个普通集合来创建EnumSet集合,要求Collection集合里都是枚举元素,且类型都相同。否则会抛出ClassCastException异常

  4)、EnumSet copyOf(EnumSet s):创建一个与指定

时间: 2024-11-10 13:38:16

37、EnumSet详解的相关文章

java集合(二)Set集合之EnumSet详解

1.定义: 添加枚举类元素的专用集合类 2.与其他集合类区别: EnumSet内部实现不使用常见的数据结构,比如数组(ArrayList),链表(LinkedList),哈系表(HashMap.Hashtable.HashSet),红黑树(TreeMap.TreeSet)而是使用位运算完成集合的基本操作 EnumSet是抽象类,只能通过静态工厂方法构造EnumSet对象,具体如下: EnumSet<E> noneOf(Class<E> elementType):构造一个空的集合En

screen详解

    背景 系统管理员经常需要SSH/telent 远程登录到Linux 服务器,运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.在此作业期间,必须要求稳定的网络环境,以确保远程终端保持连接状态:更需要管理员寸步不离地守着电脑,不能断开连接或关掉终端,否则导致作业进程终止,功亏一篑.    简介 GNU screen是一款基于VT100/ANSI的仿终端全屏视窗管理工具.用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换. GNU screen可以看作是

MySql5.5.37编译安装详解

      今天为大家介绍下mysql5.5.37的编译安装方式,在工作中编译安装也是我们常用的一种方式.希望通过这篇文章的介绍,能够给大家提供一个安装思路! 一.创建mysql的安装目录和用户 mkdir -p /usr/local/mysql  #安装mysql mkdir -p /usr/local/mysql/data   #存放数据库 groupadd mysql useradd -r -g mysql mysql 二.yum安装依赖库 yum install gcc-c++ ncur

netstat状态详解

一.生产服务器netstat tcp连接状态................................................................................ 2 1.1生产服务器某个业务LVS负载均衡上连接状态数量............................................... 2 1.2生产服务器某个业务web上连接状态数量...............................................

CentOS 7以yum方式安装zabbix3.2及配置文件详解

一.zabbix简介与环境准备 简介详见 ---> zabbix简介 环境准备: CentOS 7(node7):zabbix-server,web,mysql,agent mariadb:5.5.50 zabbix组件:3.2.1 apache:2.4.6 二.安装与配置 1.安装数据库(mariadb),可直接yum安装 [[email protected] ~]# vim /etc/yum.repos.d/MariaDB.repo [mariadb]  name = MariaDB  ba

linux mtr 命令详解

1.Mtr介绍: Mtr是 Linux中有一个非常棒的网络连通性判断工具,它结合了ping, traceroute,nslookup 的相关特性. apt-get install mtr -y 安装mtr工具 2.Mtr的相关参数: mtr -s 用来指定ping数据包的大小 mtr -nno-dns 不对IP地址做域名解析 mtr -a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的 mtr -i 使用这个参数来设置ICMP返回之间的要求默认是1秒 mtr -4 IPv4 m

iOS学习-UIActionSheet详解

1 // 2 // ViewController.m 3 // UIActionSheet详解 4 // 5 // Created by 大欢 on 16/1/25. 6 // Copyright © 2016年 bjsxt. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 11 @interface ViewController ()<UIActionSheetDelegate> 12 13 - (I

Cocos2d-x 3.X手游开发实例详解

Cocos2d-x 3.X手游开发实例详解(最新最简Cocos2d-x手机游戏开发学习方法,以热门游戏2048.卡牌为例,完整再现手游的开发过程,实例丰富,代码完备,Cocos2d-x作者之一林顺和泰然网创始人杨雍力荐) 于浩洋 著   ISBN 978-7-121-23998-4 2014年9月出版 定价:59.00元 356页 16开 编辑推荐 以Cocos2d-x V3.0为框架全面讲解手游开发的知识和方法 以热门游戏2048.卡牌为例,完整再现手游的开发过程 Cocos2d-x作者之一林

LINUX 信号概念详解

LINUX 信号概念详解 我们运行如下命令,可看到Linux支持的信号列表: # kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP