java中set集合的实现_java 中的 Set集合

1、Set:注重独一无二的性质,该体系集合可以知道某物是否已存在于集合中,不会存储重复的元素

用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。

---| Itreable 接口 实现该接口可以使用增强for循环

---| Collection 描述所有集合共性的接口

---| List接口 可以有重复元素的集合

---| ArrayList

---| LinkedList

---| Set接口 不可以有重复元素的集合

---| HashSet 线程不安全,存取速度快。底层是以哈希表实现的。

---| TreeSet 红-黑树的数据结构,默认对元素进行自然排序(String)。如果在比较的时候两个对象返回值

2、HashSet

HashSet不存入重复元素的规则.使用hashcode和equals

3、TreeSet

红黑树算法的规则: 左小右大

元素自身具备比较性

实现Comparable接口,重写compareTo方法

这种方式叫做元素的自然排序也叫做默认排序

容器具备比较性

当元素自身不具备比较性,或者元素具备的比较性不是所需要的

容器自身具备。需要定义一个类实现接口Comparator,重写compare方法

当Comparable比较方式和Comparator比较方式同时存在时,以Comparator的比较方式为主

在重写compareTo或者compare方法时,必须要明确比较的主要条件相等时要比较次要条件

上述条件指,在比较方法中,可对多个域进行比较

存入TreeSet集合中的元素要具备比较性

当compareTo()函数返回值为0时,说明两个对象相等

比较器接口:

----| Comparable

compareTo(Object o) 元素自身具备比较性

----| Comparator

compare( Object o1, Object o2 ) 给容器传入比较器

4、LinkedHashSet

会保存插入的顺序

看到array,就要想到角标。

看到link,就要想到first,last。

看到hash,就要想到hashCode,equals.

看到tree,就要想到两个接口。Comparable,Comparator。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值