集合的排序list

1.Comparable和Comparator

1.comparable是给java对象实现的,然后要实现compareTo方法进行排序 小于0排在前面
1、Collections.sort(java对象)
这种方式需要满足以下条件:
list集合中元素的数据类型是一个java对象;
该java对象必须实现Comparable类;
重写compareTo方法;
2.Collections.sort(list, new Comparator() {})实现compare方法
直接传入一个比较器,可以用 lambda 表达式

2.集合.reversed()实现反序

3.list.stream().sorted()

通过流式编程排序
1.直接点sorted()那么就是安照对象实现的comparable接口中的compareTo排序
2.sorted(new Comparator)

4.PriorityQueue通过二叉小顶堆实现

1.也可以通过构造时传入的比较器实现大顶堆。Comparator.reverseOrder()
2.优先队列的作用是能保证每次取出的元素都是队列中权值最小的
在这里插入图片描述add(E e)和offer(E e)的语义相同,都是向优先队列中插入元素,只是Queue接口规定二者对插入失败时的处理不同,前者在插入失败时抛出异常,后者则会返回false。但是对于 PriorityQueue 这两个方法其实没什么差别

element()和peek()的语义完全相同,都是获取但不删除队首元素,也就是队列中权值最小的那个元素,二者唯一的区别是当方法失败时前者抛出异常,后者返回null。

remove()和poll()方法的语义也完全相同,都是获取并删除队首元素,区别是当方法失败时前者抛出异常,后者返回null。由于删除操作会改变队列的结构,为维护小顶堆的性质,需要进行必要的调整。

size()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值