关于Comparator的使用
想实现整数数组从大到小排序,使用Comparator,写了如下代码,为什么编译不通过啊,那里有问题?
[code]
import java.util.Arrays;
import java.util.Comparator;
public class Test {
public static void main(String[] args) {
int[] a = {1,6,3,7,2,9};
Arrays.sort(a, new Cmp());
}
}
class Cmp implements Comparator <Integer> {
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
}
[/code]
[解决办法]
Arrays.sort函数有接受int和Comparator的版本吗?好像没有吧,只有:
static void sort(int[] a)
static void sort(int[] a, int fromIndex, int toIndex)
[解决办法]
import java.util.Arrays;
import java.util.Comparator;
public class Test {
public static void main(String[] args) {
Integer[] a = {1,6,3,7,2,9};
Arrays.sort(a, new Cmp());
for(int i=0;i <a.length;i++)
{
System.out.println(a[i]);
}
}
}
class Cmp implements Comparator <Integer> {
public int compare(Integer o1, Integer o2) {
int i=o2-o1;
if(i> 0)
return 1;
if(i <0)
return -1;
else
return 0;
}
}