java set 接口_Java 之 Set 接口

一、Set 概述

java.util.Set 接口继承 collection 接口,它与 Collection 接口中的方法基本一致,并没有对 Collection 接口进行功能上的扩充,只是比 Collection 接口更加严格了。

Set 接口中会以某种规则保证存入的元素不出现重复。

Set 集合不是同步的,多线程的。

特点:查询速度快,不重复,没有索引。

二、常用方法

常用方法参考 Collection 的方法:常用方法

三、实现类

HashSet 集合

LinkedHashSet 集合

TreeSet 集合

1、Set 集合是有序的吗?

① 如果按照元素的存储顺序来说,有一些是可以保证的,有一些是不能保证的。唯有 LinkedHashSet可以保证元素添加的顺序

② 如果按照元素的大小顺序来说,有一些是可以保证的,有一些是不能保证的。唯有 TreeSet可以保证元素的大小顺序

③ HashSet:既不能保证添加顺序,也不能保证大小顺序。是完全无序的。

2、HashSet 与 LinkedHashSet 区别?

HashSet:完全无序。

LinkedHashSet:是按照添加顺序来存储的。LinkedHashSet 是 HashSet 的子类,比 HashSet 多维护了添加的顺序。

当既想要实现集合的元素的不可重复性,又想要保证元素的添加顺序,就选择使用LinkedHashSet(效率低),否则就用List系列或HashSet。

3、HashSet 与 TreeSet 的区别?

HashSet:完全无序。

TreeSet:是按照存储元素的大小来排序,当你需要元素不可重复,又要给元素排大小时,就用TreeSet。

注意:要用到TreeSet,存储的元素对象一定要实现 要用到TreeSet,一定要用java.lang.Comparable或java.util.Comparator

3、如何保证元素不可重复的呢?(如何判断两个元素是重复的呢)

(1)HashSet 和 LinkedHashset 集合:

① 先比较元素的 hash 值,如果 hash 值不一样,说明两个元素一定不相同。

② 如果 hash 值一样,再调用 equals 方法比较

(2)TreeSet 集合:

按照存储元素的大小来决定元素是否相同,如果两个元素大小“相等”就是相同的元素。即必须实现 java.lang.Comparable或java.util.Comparator。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值