Java集合框架之--Set

集合Set

·确定性 ·互异性 ·无序性

HashSet、TreeSet、LinkedHashSet

 

HashSet

1.基于HashMap实现的,可以容纳null元素,不支持同步

2.通过Set set = Collections.synchronizedSet(new HashSet(...));可以支持同步

3.操作方法:

add(添加一个元素)、

clear(清除整个HashSet)、

contains(判定是否包含某个元素)、

remove(删除一个元素)、

size(大小)、

retainsAll(计算两个集合的交集)

 

LinkedHashSet

1.继承HashSet,也是基于HashMap实现的,可以容纳null元素,不支持同步

2.通过Set set = Collections.synchronizedSet(new LinkedHashSet(...));可以支持同步

3.方法和HashSet基本一致:

add(添加一个元素)、

clear(清除整个HashSet)、

contains(判定是否包含某个元素)、

remove(删除一个元素)、

size(大小)、

retainsAll(计算两个集合的交集)

4.通过一个双向链表维护插入顺序,即遍历的顺序和插入的顺序一致

 

TreeSet

1.基于TreeMap实现的,不可以容纳null元素,不支持同步

2.通过SortedSet set = Collections.synchronizedSet(new TreeSet(...));可以支持同步

3.操作方法:

add(添加一个元素)、

clear(清除整个HashSet)、

contains(判定是否包含某个元素)、

remove(删除一个元素)、

size(大小)、

4.根据compareTo方法或指定Comparator排序

 

三种Set关于重复元素的判定:

HashSet, LinkedHashSet, TreeSet的元素都只能是对象

HashSet和LinkedHashSet判定元素重复的原则:

-判定两个元素的hashCode返回值是否相同,若不同,返回false;

-若两者hashCode相同,则判定equals方法,若不同,返回false; 否则返回true.

-hashCode和equals方法是所有类都有的,因为Object类有

TreeMap判定元素重复的原则:

-需要元素继承自Comparable接口

-比较两个元素的compareTo方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值