我有一个带有我的类配置文件(名称和等级)的ArrayList,我需要在我的Arraylist中为等级属性订购这些信息。

例如:


姓名:约翰评分:50
名称:米歇尔评价:30
名称:Petter评分:55
名称:基督教等级:78
名称:塞巴等级:60


我需要这个:


名称:约翰·米歇尔:30
姓名:约翰评分:50
名称:Petter评分:55
名称:塞巴等级:60
名称:基督教等级:78


最后,我想获得最高评分:


名称:基督教等级:78


我的课程资料:

public class Profile {
    private String name;
    private int rated;

    public Profile(String name,int rated) {
        this.name=name;
        this.rated=rated;

        }

    public String getName(){
        return name;
    }
    public int getrated(){
        return rated;

    }


}


我正在尝试与此,它不起作用:

ArrayList<Profile> aLprofile=new ArrayList<Profile>();
    aLprofile.sort(aLprofile.get(0).getrated());


你有另一种方式或任何提示给我。

最佳答案

您需要将比较器传递给sort方法。因此,通过提供要与Comparator.comparingInt实例进行比较的逻辑来使用Profile

因此,在您的情况下:

comparingInt(p1 -> p1.getRated());


可以替换为方法参考:

aLprofile.sort(comparingInt(Profile::getRated));



但是,如果您只想获取最大值,则无需排序,可以使用Collections.max

Profile p = Collections.max(aLprofile, comparingInt(Profile::getRated));

09-08 07:00