Java Set集合


1.1.        判断集合中俩个元素相等的规则

1.1.1.         俩个对象的HashCode()方法返回值不同

1.1.2.         equals()方法返回false

同时满足(俩个对象的HashCode()方法返回值不同, equals()方法返回false)

1.2.        HashSet集合中的对象是可以被修改的即使修改之后其hash值和equals方法发生变化只是这样做可能使程序变得非常混乱

2.      LinkedHashSet

2.1.        是HashSet的子类

2.2.        使用链表来维护元素的次序,所以会以元素的添加顺序来访问集合里的元素

3.      TreeSet类

3.1.        概念

3.1.1.         StreeSet是SortedSet接口的实现类,可以确保集合中的元素处于排序状态

3.2.        相比HashSet额外添加的方法

3.2.1.         Object first()返回集合中的第一个元素

3.2.2.         Object last()返回集合中的最后一个元素

3.2.3.         Object lower(Object e)返回集合中小于e的最大元素

3.2.4.         Object higher(Object e)和上面相反

3.2.5.         SortedSet subSet(Object fromElement ,Object toElement)返回中间的子集

3.2.6.         SortedSet headSet(Object e)返回小于e的子集

3.2.7.         SortedSet tailSet(Object e)和上面相反

3.3.        TreeSet支持的排序方式

3.3.1.         自然排序

3.3.1.1.          使用集合元素的compareTo(Object e)方法,也就是说添加到该集合中的元素必须实现Comparable接口。CompareTo(Object e)方法决定了元素排序的位置
3.3.1.2.          系统会调用新插入元素的compareTo(Object e)方法和已经存在的元素进行比较,以此来决定排序顺序,也就是说第一个不实现Comparable接口也是可以被成功添加的,但是如果这样第二个元素添加进来的时候调用compareTo方法就会报错
3.3.1.3.          如果修改了集合中的元素,并且使得集合中两个元素相同(compareTo),那么这两个元素都不能被成功删除
3.3.1.4.          只要是被修改了就不能被删除

3.3.2.         定制排序

3.3.2.1.          在实现TreeSet时可以将一个Comparator函数式接口放到TreeSet的构造器中使用lambda表达式实现排序,即可实现定制排序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值