自学Java系列 笔记2 Java集合2

Set

§  HashSet

§  LinkedHashSet

§  TreeSet

一:

 Set

1. Set 集合不允许包含相同的元素

2. Set 是 Collection 的子接口。

3. Set 中不允许存放相同的元素,判定相同的元素标准是,两个对象各调用 equals () 方法,返回 true

 

二:

HashSet

①、不能保证元素的排列顺序。

②、集合元素可以是 null。

③、对于HashSet :如果两个对象通过 equals () 方法返回 true ,这两个对象的hashCode 值也应该相同。

 

三:

LinkedHashSet

①、LinkedHashSet 是HashSet 的子类。

②、 使用链表维护元素的次序,这使得元素看起来是以插入顺序保存的。

③、LinkedHashSet 不允许集合元素重复。

 

四:

TreeSet

1. TreeSet可以确保集合元素处于排序状态

2. TreeSet 支持两种排序方法:自然排序定制排序。默认情况下,TreeSet 采用自然排序

 

自然排序:

1. TreeSet会调用集合元素的 compareTo(Object obj) 方法来比较元素之间的大小关系,然后将集合元素按升序排列

2. 如果试图把一个对象添加到 TreeSet 时,则该对象的类必须实现Comparable 接口。

3. 实现Comparable 的类必须实compareTo(Object obj) 方法,两个对象即通过 compareTo(Object obj) 方法的返回值来比较大小

4. 因为只有相同类的两个实例才会比较大小,所以向 TreeSet 中添加的应该是同一个类的对象,当需要把一个对象放入 TreeSet 中,重写该对象对应的 equals() 方法时,应保证该方法与compareTo(Object obj) 方法有一致的结果:如果两个对象通过 equals() 方法比较返回 true,则通过 compareTo(Object obj) 方法比较应返回 0

 

定制排序:

1. 创建 TreeSet 对象时,传入 Comrparator 接口的实现类。

2. 要求:Comparator 接口的 compare 方法的返回值和两个元素的 equals ()方法具有一致的返回值。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值