比较器不会与Arrays.sort一起使用 [英] Comparator won't work with Arrays.sort

查看:73
本文介绍了比较器不会与Arrays.sort一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我正在研究一个比较器问题,但我不知道为什么第一堂课中的 Array.sort 会给我以下错误:

So I'm working on a comparator problem and I can't figure out why the Array.sort in this first class is giving me the error of:

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

The method sort(T[], Comparator) in the type Arrays is not applicable for the arguments (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());
    }

CalorieComparator类:

CalorieComparator class:

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;
    }
}

推荐答案

ArrayList 与Java数组不同.由于您使用的是列表,因此 Arrays.sort 在这里无济于事.

An ArrayList is different from a Java array; since you're using a List, Arrays.sort won't help you here.

考虑 查看全文

登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆