当前位置: 首页 > 知识库问答 >
问题:

基于object属性的ArrayList排序[重复]

高弘光
2023-03-14
public class Employee {
    public String name;
    public int age;

    public Employee()
    {

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }
}
import java.util.ArrayList;

public class EmployeeTest {
    public static void main(String[] args) 
    {
        ArrayList<Employee> empList = new ArrayList<Employee>();
        Employee emp1 = new Employee();
        emp1.setAge(15);
        emp1.setName("Employee1");
        Employee emp2 = new Employee();
        emp2.setAge(10);
        emp2.setName("Employee1");
        empList.add(emp1);
        empList.add(emp2);
        for(Employee emp : empList)
        {
            System.out.println("employee name : " + emp.getName());
            System.out.println("employee age : " + emp.getAge());
        }
    }
}

现在我有一个关于它的问题是,我想根据Employee class age属性对ArrayList进行排序。所以请解释一下我该如何排序。

共有1个答案

柯昆
2023-03-14

实现可比接口

class Employee implements Comparable<Employee> {   

Employee类中添加实现方法Compareto,如下所示:

 @Override
 public int compareTo(Employee other) {
     return this.age - other.age;
 }

然后,您可以像下面这样对列表进行排序:

Collections.sort(empList)
 类似资料:
  • 当我在ListView中获取数据时,以相同的顺序获取数据,但如果我希望基于MemberID对数据进行排序,但我希望在顶部显示最近的数据,该怎么办

  • 问题内容: 我想按属性排序。这是我的代码… 现在我想按属性将其排序,例如在另一个活动中。但是我不知道该怎么做。有人知道吗? 问题答案: 您需要实现,例如: 然后像这样排序:

  • 问题内容: 如果我有几个股利: 我动态创建div: 如何才能使它们仅按顺序排序到已加载的div中,而不必重新加载所有div? 我认为我需要在屏幕上构建一个所有div的数据排序值的数组,然后查看新div的位置,但是我不确定这是否是最佳方法。 问题答案: 使用这个功能 您可以在添加新的div后立即调用此函数。 如果要在div中保留javascript事件,请不要像上面的示例一样使用html repla

  • 我有一个Arraylist,我想按两个属性对ArrayList进行排序1。按名称(字母顺序)2。按自定义键 更多解释-: '

  • 我读过关于使用比较器对数组列表进行排序的文章,但在所有示例中,人们都使用了,根据一些研究,这是一种用于字符串的方法。 我希望按照自定义对象的属性之一对其ArrayList进行排序:日期对象()。通常我会通过来比较它们,所以我想知道我是否可以写出如下内容: