Java Arraylist 如何使用 Comparator排序

来源:百度知道 编辑:UC知道 时间:2024/05/26 18:05:26
Arraylist array = new ArrayList();
array.add("000001");
array.add("000003");
array.add("000005");
array.add("000004");
array.add("000002");
请问如何使用Comparator进行排序啊

用Comparator是策略模式(strategy design pattern),就是不改变对象自身,而用一个策略对象(strategy object)来改变它的行为。
比如:你想对整数采用绝对大小来排序,Integer是不符合要求的,你不需要去修改Integer类(实际上你也不能这么做)去改变它的排序行为,只要使用一个实现了Comparator接口的对象来实现控制它的排序就行了。

示例代码如下:

//AbsComparator.java
import java.util.*;
public class AbsComparator implements Comparator {
public int compare(Object o1, Object o2) {
int v1 = Math.abs(((Integer)o1).intValue());
int v2 = Math.abs(((Integer)o2).intValue());
return v1 > v2 ? 1 : (v1 == v2 ? 0 : -1);
}
}

//Test.java
import java.util.*;
public class Test {
public static void main(String[] args) {

//产生一个20个随机整数的数组(有正有负)
Random rnd = new Random();
Integer[] integers = new Integer