Java中的集合框架之Set集合。
1、Set集合介绍
Java中的Set集合,是位于java.util包下,继承自Collection接口,是属于Collection接口的子接口。
Set集合出现在JDK1.2时期,其中它的实现类有多个,例如:HashSet、TreeSet等等。
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时期出现的。
HashSet底层是使用哈希表实现的,该类中的方法不可以同步访问,即:HashSet不是线程安全的。并且HashSet中存储的元素是没有顺序的。
4.2、HashSet存储自定义对象
HashSet存储自定义对象时,需要重写Object类中的equals()和hashCode()方法,这样才能包中元素的唯一性。
5、Set集合之TreeSet实现类介绍
5.1、TreeSet介绍
TreeSet是Set集合的另一个常见实现类,位于java.util包下,出现于JDK1.2时期。
TreeSet是可以给Set集合指定元素的顺序的。默认情况下,是通过元素的自然顺序进行排序。TreeSet底层是通过TreeMap实现的。
5.2、TreeSet存储自定义对象
TreeSet存储自定义对象时,需要实现Comparable接口,使得该自定义类是可以进行比较的。
因为默认情况下,TreeSet是按照自然排序的规则进行排序集合元素,如果存储自定义对象时,还是按照自然排序规则,则会抛出异常。
抛出异常如上图所示。
解决方法:让自定义对象类实现Comparable接口。
然后实现compareTo()方法。
可以在compareTo()方法中,定义排序规则。
综上,Java中集合框架之Set集合介绍完了。