`
逆风的香1314
  • 浏览: 1432144 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

老紫竹JAVA提高教程(5)-认识Set集合之EnumSet

阅读更多
 
原文地址:http://www.java2000.net/p11847

这个类是1.5开始有的,目前个人使用量几乎为零,因为我很少使用枚举,呵呵。我这里也是简单介绍一下而已。其使用方式和普通的Set没有区别,只是构造方法有一些特殊的而已。

  1. package collection.lession5;
  2. import java.util.Arrays;
  3. import java.util.EnumSet;
  4. import java.util.Set;
  5. /**
  6.  * 老紫竹JAVA提高教程(5)-认识Set集合之EnumSet。<br>
  7.  * 枚举 set 中所有键都必须来自单个枚举类型<br>
  8.  * 该枚举类型在创建 set 时显式或隐式地指定<br>
  9.  * 迭代顺序是声明时的顺序。<br>
  10.  * 不允许null数据。
  11.  * 
  12.  * @author 老紫竹 JAVA世纪网(java2000.net)
  13.  * 
  14.  */
  15. public class Lession5 {
  16.   /**
  17.    * @param args
  18.    */
  19.   public static void main(String[] args) {
  20.     // 创建一个指定类型的空的集合
  21.     EnumSet<MyEnum> set = EnumSet.noneOf(MyEnum.class);
  22.     set.add(MyEnum.RED);
  23.     set.add(MyEnum.GREEN);
  24.     set.add(MyEnum.BLUR);
  25.     showSet(set);
  26.     // 创建指定类型的所有数据的集合
  27.     EnumSet<MyEnum> set2 = EnumSet.allOf(MyEnum.class);
  28.     showSet(set2);
  29.     // 创建指定类型指定初始数据的集合
  30.     EnumSet<MyEnum> set3 = EnumSet.of(MyEnum.GREEN, MyEnum.RED, MyEnum.WHITE);
  31.     showSet(set3);
  32.     // 创建指定类型,指定范围的集合
  33.     // 包含边界数据
  34.     EnumSet<MyEnum> set4 = EnumSet.range(MyEnum.RED, MyEnum.YELLOW);
  35.     showSet(set4);
  36.     
  37.     // 集合的用法和普通的没有区别
  38.   }
  39.   /**
  40.    * 显示Set里面的数据。
  41.    * 
  42.    * @param set
  43.    */
  44.   private static void showSet(Set set) {
  45.     System.out.println(Arrays.toString(set.toArray()));
  46.   }
  47. }
  48. enum MyEnum {
  49.   BLACK, WHITE, RED, BLUR, GREEN, YELLOW
  50. }
测试:
  1 自己书写 copyOf(Collection<E> c) 和 complementOf(EnumSet<E> s) 的使用方式
  2 测试在EnumSet.of 是否允许有重复值,是编译报错还是运行报错
  3 测试 EnumSet.range 是否起点大于终点,也就是反向的range,看编译错误还是运行错误

总结
  如果我们要用到对枚举类型的集合处理,这个当然是很好的选择。可惜我自己目前还用不到,以后在项目里,根据情况再确定吧。

如果range起点大于重点,出现如下的异常信息:
Exception in thread "main" java.lang.IllegalArgumentException: RED > BLACK
分享到:
评论

相关推荐

    java集合-EnumSet的使用

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

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

    java 运用集的相关类(Set)

    在Java中,Set接口是集合框架的一部分,它代表了不包含重复元素的无序集合。本篇将深入探讨Java中Set接口及其相关的实现类,以及如何在实际编程中运用。 Set接口继承自Collection接口,其主要特性是元素的唯一性,...

    java集合 框架 泛型

    泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的枚举类型。 首先,Java集合框架包括List、Set、Queue等接口,以及ArrayList、LinkedList、...

    Java集合框架学习笔记

    本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java 5引入的泛型特性。 首先,让我们了解一下`java.lang.Class`。`Class`类在Java中扮演着特殊的角色,它不仅是一个普通类,而且是用于获取...

    Java集合框架培训资料

    Java集合框架是Java编程语言中的核心组件之一,它为数据存储和管理提供了丰富的类和接口。这个培训资料将深入探讨Java集合框架的各个方面,帮助开发者更有效地利用这些工具。 首先,我们要了解Java集合框架的基本...

    java集合,java集合

    11. **EnumSet和EnumMap**:专为枚举类型设计的高效集合实现, EnumSet是Set的优化版本,EnumMap是Map的优化版本,它们在内部使用位运算和数组实现,性能优秀。 以上只是Java集合框架的一部分核心概念,实际开发中...

    java-collection-all-in-one.pdf

    Java集合框架是Java编程语言中处理数据结构的核心组件,它广泛应用于存储、操作和检索数据。在java.util包和java.util.concurrent包中,Java集合框架被细分为两大类:基础集合类和并发集合类。基础集合类主要用于单...

    java集合框架全面进阶.pdf

    7. **Java集合框架中的重要类和方法**:包括但不限于Collection、Set、List、Map、Iterator、EnumSet、EnumMap、SortedSet、NavigableSet、SortedMap、NavigableMap以及它们的实现类。 在Java集合框架的发展史上,...

    Java_jihe2.rar_java集合

    Java集合框架是Java编程语言中不可或缺的一部分,它为开发者提供了数据结构和算法的实现,使得在处理各种数据存储和操作时更加高效。本资源“Java_jihe2.rar”包含了关于Java集合框架第二部分的学习源码,是进一步...

    Java 集合框架介绍.ppt

    Java集合框架是Java编程语言中的一个核心组件,它为开发者提供了高效、灵活的数据结构和算法。这个框架使得处理对象集合变得更加简单,同时也提高了代码的可读性和可维护性。以下是对Java集合框架的详细说明: 1. *...

    全面接触java集合框架(word版)

    Java 5 引入了枚举类型,集合框架中的 `EnumSet` 和 `EnumMap` 分别针对枚举类型提供了高效的集合实现。 6. **并发集合** 为了支持多线程环境,Java提供了如 `ConcurrentHashMap`, `CopyOnWriteArrayList`, `...

    j2se集合课件是java的基础课程章节之一

    Java集合框架是Java编程语言中的核心...总之,Java集合框架是Java开发中的基石,理解并熟练运用各种集合类和接口能够极大地提高代码的效率和可维护性。这个j2se集合课件将引导学习者全面掌握这些概念,提升编程能力。

    深入学习java源码-Java-Collection-Framework:java集合框架详解,这里有集合框架的深入学习并且贴出了部分重要

    此外,Java集合框架还包括`EnumSet`(枚举集)、`CopyOnWriteArrayList`和`CopyOnWriteArraySet`(线程安全的集合)以及`ConcurrentHashMap`(并发友好的哈希映射)等高级数据结构。 在源码学习中,理解这些类和...

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

    Java中的枚举是一种特殊的类,它提供了一种安全的方式来表示有限集合中的值。枚举类型在Java中被引入,主要用于解决常量集合并提供一种强类型的安全性,防止了无意间创建新的实例或修改枚举常量。这篇博客将深入探讨...

    java collection framework

    在 Java 领域,《Java Collection Framework》这本书被广泛认为是一本优秀的教程,尤其适合初学者了解集合框架的前世今生。通过本书的学习,读者不仅能掌握集合框架的基本概念,还能深入了解其内部结构与实现原理。 ...

    全面接触Java集合框架

    - Java集合框架广泛使用泛型,允许在编译时检查类型安全,避免了不必要的类型转换,并提高了代码的可读性。 5. **并发**: - `ConcurrentHashMap`:线程安全的哈希映射,适合多线程环境下的高性能操作。 - `...

    Java 集合框架高难度进阶版面试题集锦解析

    Java 集合框架是Java编程语言中一个重要的组成部分,它提供了一套接口和类,使得程序员能够方便地管理和操作对象的集合。这个框架包括了多种数据结构,如列表(List)、集合(Set)、映射(Map)以及迭代器...

    对Java中Set的深入研究.pdf

    Java中的Set接口是基于集合概念实现的,它不包含重复元素。Set接口继承自Collection接口,并且不保证集合中元素的顺序,某些Set实现可能会按照插入顺序或特定规则排序。以下是对Java Set实现的一些深入讨论: 1. **...

Global site tag (gtag.js) - Google Analytics