LinkHashSet以及EumnSet集合知识

首先来看LinkHashSet,该集合为HashSet的子类,跟父类一样也是根据元素的hashCode来决定元素在集合中的位置,但该集合以 链表的 形式存储元素,所以集合内元素可以看成是有序的,遍历集合时元素内的存储顺序按照插入的顺序展示,存储性能略微低于父类,因为需要根据链表进行排列.但迭代时会有不错的性能体现

	    LinkedHashSet newSet =  new LinkedHashSet();
        newSet.add("元素一");
        newSet.add("元素二");
        newSet.add("元素三");
        newSet.add("元素四");

        //使用集合流迭代
        newSet.stream().forEach(str -> System.out.println(str));
        //删除元素三
        newSet.remove("元素三");
        //添加元素三
        newSet.add("元素三");
        System.out.println("---------");
        //元素位置与添加时一致
        newSet.stream().forEach(str -> System.out.println(str))

在这里插入图片描述
EnumSet是专门为枚举类设计的集合,集合中所有元素都必须是指定枚举类型的枚举值,类型在创建集合的时候指定,集合内元素有序排列,该顺序 由枚举类枚举值的定义顺序决定.集合以向量形式存储,占内存很小,运行效率较高,集合内不允许 出现null值
通过下列方法可以创建一个指定的EnumSet集合

  • copyOf(Collection c) 创建一个普通集合来创建EnumSet集合
  • copyOf(EnumSet s) 创建一个与指定EnumSet具有相同 元素类型相同几何元素的EnumSet集合
  • noneOf( Class elementType) 创建一个元素类型为指定枚举类型的空集合
  • allOf(Class elementType) 创建一个包含指定枚举类里所有枚举值的集合
  • complementOf(EnumSet s) 创建一个 其元素类型与指定EnumSet集合内元素类型相同的集合,新集合为原集合内枚举类所剩下的、不包含在原枚举集合内 的枚举值
//根据指定枚举类创建集合
        EnumSet<Weather> weathers = EnumSet.allOf(Weather.class);
        System.out.println(weathers);
        //创建空集合  集合内元素类型以指定的枚举类枚举值类型相同
        EnumSet<Weather> enumSet = EnumSet.noneOf(Weather.class);
        System.out.println(enumSet);
        //往空集合内添加指定元素
        enumSet.add(Weather.下雨);
        enumSet.add(Weather.刮风);
        System.out.println(enumSet);
        //已指定的枚举值创建集合
        EnumSet<Weather> enumSet1 = EnumSet.of(Weather.下雪, Weather.晴天);
        //创建一个枚举值从枚举类的obj1到枚举类的objN内包含的所有枚举值的集合
        System.out.println(EnumSet.range(Weather.晴天,Weather.下雪));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值