下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

JAVA程序员提高教程(5)-认识Set集合之EnumSet

作者:课课家教育     来源: http://www.kokojia.com点击数:774发布时间: 2016-02-01 14:20:12

标签: java课程标准21天学通javajava学习课程

大神带你学编程,欢迎选课

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

JAVA程序员提高教程(5)-认识Set集合之EnumSet_java课程标准_21天学通java_课课家

  1.package collection.lession5;

  2.

  3.import java.util.Arrays;

  4.import java.util.EnumSet;

  5.import java.util.Set;

  6.

  7./**

  9. * 枚举 set 中所有键都必须来自单个枚举类型

  10. * 该枚举类型在创建 set 时显式或隐式地指定

  11. * 迭代顺序是声明时的顺序。

  12. * 不允许null数据。

  13. *

  15. *

  16. */

  17.public class Lession5 {

  18.

  19. /**

  20. * @param args

  21. */

  22. public static void main(String[] args) {

  23. // 创建一个指定类型的空的集合

  24. EnumSet set = EnumSet.noneOf(MyEnum.class);

  25. set.add(MyEnum.RED);

  26. set.add(MyEnum.GREEN);

  27. set.add(MyEnum.BLUR);

  28. showSet(set);

  29.

  30. // 创建指定类型的所有数据的集合

  31. EnumSet set2 = EnumSet.allOf(MyEnum.class);

  32. showSet(set2);

  33.

  34. // 创建指定类型指定初始数据的集合

  35. EnumSet set3 = EnumSet.of(MyEnum.GREEN, MyEnum.RED, MyEnum.WHITE);

  36. showSet(set3);

  37.

  38. // 创建指定类型,指定范围的集合

  39. // 包含边界数据

  40. EnumSet set4 = EnumSet.range(MyEnum.RED, MyEnum.YELLOW);

  41. showSet(set4);

  42.

  43. // 集合的用法和普通的没有区别

  44. }

  45.

  46. /**

  47. * 显示Set里面的数据。

  48. *

  49. * @param set

  50. */

  51. private static void showSet(Set set) {

  52. System.out.println(Arrays.toString(set.toArray()));

  53. }

  54.}

  55.

  56.enum MyEnum {

  57. BLACK, WHITE, RED, BLUR, GREEN, YELLOW

  58.}

  测试:

  1 自己书写 copyOf(Collection c) 和 complementOf(EnumSet s) 的使用方式

  2 测试在EnumSet.of 是否允许有重复值,是编译报错还是运行报错

  3 测试 EnumSet.range 是否起点大于终点,也就是反向的range,看编译错误还是运 行错误

  总结

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

  如果range起点大于重点,出现如下的异常信息:

  Exception in thread "main" java.lang.IllegalArgumentException: RED > BLACK

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程