------- 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()就会使用比较器的方法。