java 同步 set_Java学习笔记三十八(Set集合)

Java中的集合框架之Set集合。

1、Set集合介绍

Java中的Set集合,是位于java.util包下,继承自Collection接口,是属于Collection接口的子接口。

Set集合出现在JDK1.2时期,其中它的实现类有多个,例如:HashSet、TreeSet等等。aa4d9d4305ed2db15c997d7aaa2629f2.png

2、Set集合特点

<1>Set集合是散列的。即Set集合存储元素的顺序不一定和获取元素的顺序一致。

<2>Set集合不能存放重复的元素。

3、Set集合中的方法

由于Set接口继承自Collection接口,所以Set中的方法都与Collection一致,可以直接使用Collection接口中的方法。对集合进行增删改查操作。

使用Set集合时,只需要注意Set集合的子类对象即可。

4、Set集合之HashSet实现类介绍

4.1、HashSet介绍

HashSet是Set集合的实现类之一,位于java.util包下,也是在JDK1.2时期出现的。082dc334d852cf5e834dbf342de8b437.png

HashSet底层是使用哈希表实现的,该类中的方法不可以同步访问,即:HashSet不是线程安全的。并且HashSet中存储的元素是没有顺序的。

4.2、HashSet存储自定义对象

HashSet存储自定义对象时,需要重写Object类中的equals()和hashCode()方法,这样才能包中元素的唯一性。4fbb0ee4a6d82f57e96c2758a172654c.png

5、Set集合之TreeSet实现类介绍

5.1、TreeSet介绍

TreeSet是Set集合的另一个常见实现类,位于java.util包下,出现于JDK1.2时期。

TreeSet是可以给Set集合指定元素的顺序的。默认情况下,是通过元素的自然顺序进行排序。TreeSet底层是通过TreeMap实现的。5f6352964a55c7278630367f24f9c502.png

5.2、TreeSet存储自定义对象

TreeSet存储自定义对象时,需要实现Comparable接口,使得该自定义类是可以进行比较的。

因为默认情况下,TreeSet是按照自然排序的规则进行排序集合元素,如果存储自定义对象时,还是按照自然排序规则,则会抛出异常。65c490a273b034c92f98b9dbe765b9ec.png

抛出异常如上图所示。

解决方法:让自定义对象类实现Comparable接口。46c78b30e25a6744bf535a97150d72c4.png

然后实现compareTo()方法。f3820b01b43ae20bbeba39ab0ba71900.png

可以在compareTo()方法中,定义排序规则。

综上,Java中集合框架之Set集合介绍完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值