比较器不适用于Arrays.sort

Sea*_*rty 3 java arrays sorting comparator

所以我正在研究一个比较器问题,我无法弄清楚为什么Array.sort第一堂课给我的错误是:

Arrays类型中的方法sort(T [],Comparator)不适用于参数(ArrayList,CalorieComparator)

餐厅类:

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;

public class Restaurant {
    private ArrayList<Edible> elist;

    public Restaurant() {
    }

    public void addEdibleItem(Edible item){
        elist.add(item);
    }

    public List<Edible> orderByCalories(){
        Arrays.sort(elist, new CalorieComparator());
    }
Run Code Online (Sandbox Code Playgroud)

CalorieComparator类:

import java.util.Comparator;
public class CalorieComparator implements Comparator {

    public int compare(Object o1, Object o2){
        Edible thisfood = (Edible)o1;
        Edible otherfood = (Edible)o2;
        if(thisfood.getCalories() > otherfood.getCalories())
            return 1;
        else if (thisfood.getCalories() < otherfood.getCalories())
            return -1;
        else 
            return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

Jef*_*ica 22

An ArrayList与Java数组不同; 因为你正在使用List,Arrays.sort所以在这里不会帮到你.

考虑一下Collections.sort.