NotionNext
NotionNext
编程爱好者
/互联网从业者
/知识分享博主
认知决定态度,态度决定选择,选择决定人生

Java中的排序

NotionNext - 2023-4-19 - Technical / Java / 后端
发布于:2023-4-19|最后更新: 2023-8-29|
type
status
date
slug
summary
tags
category
icon
password

对数组或数组列表排序

Arrays.sort

  • Arrays.sort() 方法只能对数组进行排序,而不能对其他集合类型像 List 进行排序
  • 原址排序,不开辟额外的空间
  • 对基本类型数组都提供了两种sort方法
  • 对整个数组排序
  • 对数组中一段区间排序[fromIndex,toIndex]

Collections.sort

  • Collections.sort() 方法可以对 List 中的元素按照默认的升序进行排序
  • 默认排序方式:

ArrayList中的 sort

 

Comparable接口

  • 位于java.lang包
  • 让对象可以按照一定规则排序
  • 核心方法:public int compareTo(T o)
    • 返回负数表示当前对象小于传入对象o
    • 返回正数表示当前对象大于传入对象o
    • 返回零表示当前对象等于传入对象o

Comparator接口

  • 位于java.util包
  • Comparator接口通常用于对集合中的元素进行排序,可以在集合的构造方法中传入一个Comparator对象,以自定义排序规则。
  • 为啥有了Comparable接口还不够?
    • 不是所有的类都会实现Comparable接口
    • 即使实现Comparable接口,但排序规则也不是我们所希望的时候
  • 核心方法:int compare(T o1, T o2);
    • 返回负数表示对象 o1 小于对象 o2
    • 返回正数表示对象 o1 大于对象 o2
    • 返回零表示对象 o1 等于对象 o2
HashMapJava中的泛型