黑马程序员_java入门_Set集合

来源:互联网 发布:php遍历json对象 编辑:程序博客网 时间:2024/04/28 20:01

------- android培训、java培训、期待与您交流! ----------

 

一.set集合特点

1.存储无序,不可重复,取出可能无序

 

二set集合分类

-----------------HashSet 底层数据结构哈希表,按哈希值存

-----------------TreeSet 底层机构二叉树,按树顺序存

 

同样都用迭代器取出

 

三HashSet

HashSet保证元素唯一性,那么它是如何保证唯一性的呢?

调用add()方法里面其实含有Hashcode()和equals()方法

通过HashCode和equlas方法来完成

第一步判断HashCode,如果相同判断

第二步equals

 

四TreeSet

TreeSet和HashSet的区别就是前者取出有序了

这是为什么呢?因为里面有一个方法叫做comparTo方法他实现comparble接口,让类具有可比性,那么add()就能comparto的返回值,比较添加的元素是否重复

通过返回的数,add()里面的方法能自动的排序每一个元素。

 

其实都是通过返回值来判断的一个是 comparbale下面的comparTo()的返回值,另外一个compartor下面compare方法的返回值

 

两种形式都存在,以比较器为主。

 

五.二叉树

小左大右

如果元素多了,从中间向两边散发,这是add()调用的一种方法

 

六比较器(Comparator)

由于不可比或者比较的东西不是主要的,所以要建立比较器,让集合具有比较器

给一个集合具有比较性,则让集合参与构造函数。

什么意思呢?

就是定义一个比较器传给TreeSet的构造函数。此时在添加就能比较了。

以后再添加的时候,那么add()就会使用比较器的方法。

 

 

 

原创粉丝点击