Set集合的作用与数据结构,以及相关方法

Set

         注意:没有提供任何特有的方法

       HashSet
                数据结构:
                    红黑树+哈希表+链表
        判断元素重复:
            1,先判断本次存入的对象的hashcode值是否与集合中已经存储的元素hashcode值是否一致
                    1.1:一致        

           2,使用存入的对象调用equals与集合中已经存储的元素一一比较
                2.1:相同
                    不予存储
                2.2:不相同
                    存入
                    1.2:不一致
                        直接存储

TreeSet

        注意:
            存储的数据要么拥有比较性,要么指定比较器
            比较性:Comparable
                提供的方法是:compareTo(E e);
            比较器:Comparator
                提供的方法是:compare(E e1,E e2);
        判断元素重复:
            使用比较器或比较性

比较性的使用:

    注意:让存储的元素拥有比较器.所以是让存储的元素所属类实现该接口
    当compareTo方法返回值为0表示相同,不予存储
    当compareTo方法返回值为负数表示正在其比较值之前
    当compareTo方法返回值为正数表示正在其比较值之后

比较器的使用:

     注意:在创建TreeSet是传入比较器对象
    当compare方法返回值为0表示相同,不予存储
    当compare方法返回值为负数表示正在其比较值之前
    当compare方法返回值为正数表示正在其比较值之后
    
分别使用比较性与比较器完成下面练习
    1,公司对其员工进行排序
        排序的要求:
            年龄大的在前,小的在后
            年龄相同时,薪资高的在前,薪资低的在后
            如果年龄与薪资都形同,剔除

LinkedHashSet


特点:有序,但是不能重复
Collections


作用:集合操作的工具类
提供的方法:
    addAll:给指定的集合中添加多个数据
        1参:指定的集合
        2~参:添加的元素
        
    binarySearch:使用二分查找法,查询指定集合中的执行元素,返回值为负数证明数据不存在
        1参:查询的集合
        2参:查找的元素
    
    sort(Collection<E> e);//排序
    sort(Collection<E> e,Comparator<E> c);//排序,自定义比较器
    
    reverse(List<?> list):翻转
 

 总结


经验:
因为在开发中大量的使用场景是查询,所以ArrayList的使用频率极高
但是因为在校招与笔试中进行需要对数据进行排序或其他操作,所以此时Set的使用频率较高
    剔重:请使用HashSet
    排序:请使用TreeSet

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值