温馨提示×

java中arraylist排序怎么自定义

小亿
101
2023-07-11 10:58:47
栏目: 编程语言

在Java中,可以使用Collections.sort()方法对ArrayList进行排序。如果想要自定义排序规则,可以使用Comparator接口来实现自定义比较器。

以下是一个示例代码,展示如何对ArrayList中的元素按照自定义规则进行排序:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(10);
numbers.add(1);
// 使用自定义比较器进行排序
Collections.sort(numbers, new CustomComparator());
// 输出排序结果
for (Integer number : numbers) {
System.out.println(number);
}
}
}
class CustomComparator implements Comparator<Integer> {
@Override
public int compare(Integer num1, Integer num2) {
// 自定义比较规则,这里按照数字的绝对值进行排序
int absDiff = Math.abs(num1) - Math.abs(num2);
if (absDiff < 0) {
return -1;
} else if (absDiff == 0) {
return 0;
} else {
return 1;
}
}
}

在这个示例中,我们创建了一个包含整数的ArrayList,并使用自定义比较器CustomComparator对其进行排序。在CustomComparator类中,我们实现了Comparator接口,并重写了其中的compare()方法,定义了按照数字的绝对值进行排序的规则。然后,我们使用Collections.sort()方法对ArrayList进行排序,传入自定义比较器对象作为参数。最后,通过遍历ArrayList输出排序结果。

0