排序问题

2017-03-13  本文已影响0人  阿莫米德
数组排序

数组排序最简单了,直接Arrays.sort(a); a是待排序的数组

根据对象中的成员变量来排序

这个要用到comparator接口
需要另外创建一个类来实现这个接口,并且重接里面的compare方法。
在这里根据是Application这个方法中的average这个成员变量来排序。

class Acomparator implements Comparator<Application> {
    @Override
    public int compare(Application o1, Application o2) {
        // 这里是从大到小的排序规则。如果o1小于o2,返回一个正数;如果o1大于o2,返回一个负数;如果他们相等,则返回0
        if (o1.average > o2.average) {
            return -1;
        } else if (o1.average < o2.average) {
            return 1;
        } else {
            return 0;
        }
    }
}

然后在用的时候,这么用。先创建一个比较器的对象。然后调用Collections里的sort().
第一个参数是待排序的对象的list.如下定义。List本身是一个接口,所以要指明类型。ArrayList是它一个实现类。创建的时候创建的还是实现类。

List<Application> appList = new ArrayList<Application>();
Acomparator comparator = new Acomparator();
Collections.sort(appList, comparator);

那么appList里的对象就有序了。

上一篇 下一篇

猜你喜欢

热点阅读