Set集合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Set集合相关的知识,希望对你有一定的参考价值。
HashSet:HashSet 底层数据结构是哈希表. HashSet 不是线程安全的 集合元素可以是 null
哈希表:是一个元素为链表的数组,综合了数组和链表的优点
当向 HashSet 集合中存入一个元素时,HashSet 会调用该对象的 hashCode() 方法来得到该对象的 hashCode 值,然后根hashCode 值决定该对象在 HashSet 中的存储位置。
HashSet 集合判断两个元素相等的标准:
两个对象通过 hashCode() 方法比较相等,并且两个对象的 equals() 方法返回值也相等。
HashSet的数据结构是 数组跟链表
HashSet的数据结构是 数组跟链表和二叉树
LinkedHashSet:
数据结构 有两个 链表和哈希表
链表保证有序 哈希表保证元素唯一
TreeSet:
集合的特点: 元素唯一,并且可以对元素进行排序
底层的数据结构是二叉树
排序:
1:自然排序
2:使用比较器排序
采用空参构造时,就用的是自然排序,
自然排序要求元素必须实现一个Compareble 接口
并且重写接口中 compareTo 这个比较的方法,根据
此方法的返回值的正负0 来决定元素放置到树结构的
位置,以及不往里面方法
此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)
支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。
采用比较器排序:你使用有参构造,参数就会要一个比较器
使用元素的自然顺序对元素进行排序,或者根据创建 set 时
提供的 Comparator 进行排序,具体取决于使用的构造方法。
此类允许使用 null 元素。
合理的重写hashCode方法的作用:
1.确定元素节点在哈希表中的存的位置,
2,减少调用equals方法()重写equals方法 当节点的索引相同时,去比较内容
以上是关于Set集合的主要内容,如果未能解决你的问题,请参考以下文章
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段