在Java中,可以使用多种方法对数组或集合进行排序。以下是几种常见的排序方法:
1、Arrays.sort():对数组进行排序。
// 使用Arrays.sort()对整型数组进行排序
int[] array = {9, 5, 2, 7, 3};
Arrays.sort(array);
2、Collections.sort():对列表进行排序。
// 使用Collections.sort()对字符串列表进行排序
List<String> list = new ArrayList<>();
list.add("banana");
list.add("apple");
list.add("cherry");
Collections.sort(list);
3、PriorityQueue:通过堆结构实现自然排序。
// 使用PriorityQueue进行自然排序
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(9);
priorityQueue.add(5);
priorityQueue.add(2);
// priorityQueue默认为最小堆,会得到升序排序
4、Comparator:定制排序,可以用于排序对象或自定义排序规则。
// 使用Comparator对象进行自定义排序规则
List<Person> people = new ArrayList<>();
people.sort(Comparator.comparing(Person::getName));
// 假设Person类有一个getName方法,根据姓名字母顺序排序
最近在项目中遇到的:
// 集合排序
// childElements 这是个集合
Collections.sort(childElements,newComparator<T>() {
@Override
public intcompare(T o1,T o2) {
intsort1= o1.getName().startsWith("【xxx】") ?1: o1.getName().startsWith("【yy】") ?2:3;
intsort2= o2.getName().startsWith("【xxx】") ?1: o2.getName().startsWith("【yy】") ?2:3;
returnsort1-sort2;
}
}.thenComparing(T::getName,Comparator.reverseOrder()));
评论区