我有一个带有我的类配置文件(名称和等级)的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));