Set容器

作者: 业余的猫 | 来源:发表于2016-12-21 19:05 被阅读0次

Set(不能放重复元素) 用foreach或者迭代器进行遍历

  • HashSet(底层HashMap实现)
  • 用hashcode和equals方法比较两个对象是否相等
    如果哈希值不相等,那么一定是不同对象,如果相等有可能不是同一对象,这时候还要执行equals方法,所以要想使用HashSet必须要重写hashcode和equals方法
  • hashcode()->相同的对象需要产生相同hash码,不同的对象尽量产生不同的hash码
  • equals() ->比较两个对象的规则(先比引用,再比类型,再比属性),一般使用eclipse自动生成,不用自己写。
    • 自反性(自己和自己比一定为true)
    • 对称性(若a==b 为true,那么b==a为true)
    • 传递性(若a==b 为true, b=c,那么a==c为true)
    • 一致性(不管多少次执行,只返回相同的结果)
  • java堆空间采用hash算法
    如果两个对象的hash码相等(冲突),采用桶结构,先用hash码找到地址, 然后用equals方法在桶中挨个比对。
  • hash函数最有名的两个是MD5码和SHA1
  • TreeSet(底层用排序树实现)去重+排序
  • 因为需要排序所以在使用时对象需要实现Comparable接口

相关文章

  • STL容器set基础使用

    STL容器之set 一、什么是set? set关联式容器。 set作为一个容器也是用来存储同一数据类型的数据类型,...

  • Set容器

    Set(不能放重复元素) 用foreach或者迭代器进行遍历 HashSet(底层HashMap实现) 用hash...

  • STL--vector、deque、list、set、map、s

    vector(向量容器) deque(双端队列容器) list(链表容器) set(集合容器) map(映射容器)

  • Boolan_STL与泛型编程_第三周笔记

    本周课程重点讲解了容器deque、容器queue、容器rb_tree、容器set/multiset、容器map/m...

  • Java容器:Set

    Set和数学中的集合十分类似,在Java中,Set是一种绝不会包含两个相等元素的存储结构。在阅读此文前请阅读Jav...

  • Set和Map数据结构

    Set容器 : 无序不可重复的多个value的集合体 Set() Set(array) add(value) de...

  • C++ STL set详解

    一.解释 关于set,必须说明的是set关联式容器。 set作为一个容器也是用来存储同一数据类型的数据类型,并且能...

  • Java—Set集合详解(HashSet/LinkedHashS

    Set集合介绍 Set集合的概念   Set集合类似于一个容器,程序把很多对象保存到Set集合中,Set集合对添加...

  • 集合框架总结

    Java的主要容器: CollectionListArrayListLinkedListVector(过时)Set...

  • C++ STL 集合类常用记录

    STL中关于集合的容器主要是set,multiset,unordered_set和unordered_multis...

网友评论

      本文标题:Set容器

      本文链接:https://www.haomeiwen.com/subject/jnnqvttx.html