java - 如何使用特定的类属性对 arraylist asc 进行排序?

标签 java arraylist

我有一个带有我的类配置文件(名称和评级)的 ArrayList,我需要在我的 Arraylist 中订购此信息以获取评级属性。

例如:

  • 姓名:约翰评分:50
  • 姓名:米歇尔评分:30
  • 姓名:Petter 评分:55
  • 姓名:基督徒评分:78
  • 姓名:Seba 评分:60

我需要这个:

  • 姓名:约翰·米歇尔:30
  • 姓名:约翰评分:50
  • 姓名:Petter 评分:55
  • 姓名:Seba 评分:60
  • 姓名:基督徒评分:78

最后我想获得最佳评价:

  • 姓名:基督徒评分:78

我的类(class)简介:

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());

您有其他方法或任何提示给我。

最佳答案

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

所以在你的情况下:

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

可以用方法引用替换:

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

<小时/> 但如果你只想获取最大值,则无需排序,可以使用Collections.max:

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

关于java - 如何使用特定的类属性对 arraylist asc 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30445487/

相关文章:

java - 使用数据源时的 Hibernate "connection.pool_size"属性

java - 动态更新 fragment

java - 无法在 JSP 中显示 arrayList

java - 如何通过 Hashmap<int<arraylist>> 分配比预期更多的值来修复循环

java - 如何将CSS类放入html :select element in jsp

java - 我无法从其他设备连接到 Flask 服务器(=不是来自本地主机)

java - 如何在java中将seconds_since_the_beginning_of_this_epoch转换为日期格式..?

java - 在android中将字符串数组的ArrayList从一个 Activity 传递到另一个 Activity

java - ArrayList 检索第一个和最后一个结果而不对 ArrayList 进行排序

Java/Android Arraylist 给出地址