java - Java ArrayList 中的名称排序?

标签 java sorting arraylist comparator

我有一个包含姓名、年龄、薪水等的数组列表。

我想按名称对列表进行排序。

以下是我在类里面的内容:

//Sort by Name
public ArrayList<Employee> sortByName()
{
  Collections.sort(employees);
  return employees;
}

我这里有一个比较器(我不确定是否使用过):

import java.util.*;

public class EmployeeNameComparator implements Comparator<Employee>
{
   ArrayList<Employee> employees = new ArrayList<Employee>();

   //METHODS
   //Name Compare
   public int compare(Employee object1, Employee object2)
   {
      return object1.getName().compareTo(object2.getName());
   }
}

这是我制作的测试器的相关部分:

CompanyDataBase database = new CompanyDataBase();

  database.addEmployee(new Employee("John James", 34, 45000));
  database.addEmployee(new Employee("Josie Gibson", 19, 19000));
  database.addEmployee(new Employee("Luke Marsden", 28, 30000));
  database.addEmployee(new Manager("Aaron Morgan", 28, 44000, 5500));

  System.out.println("\n\nSORT BY NAME");
  //Collections.sort(database.getEmployees());
  database.sortByName();

  for(Employee currEmployee: database.getEmployees())
  {
     System.out.println(currEmployee.getDescription());
  }

我已经尝试了很多方法,但似乎没有任何效果,有谁知道我哪里出错了或者如何让它发挥作用?谢谢。

最佳答案

使用需要第二个参数的比较器按名称对对象进行排序。

Collections.sort(employees, new EmployeeNameComparator());

请参阅example使用自定义比较器。

关于java - Java ArrayList 中的名称排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20180830/

相关文章:

java - Quartz Scheduler 和 JMS 有什么区别?

java - 向选项卡添加按钮和可滚动面板 - Java

java - 我们可以做些什么来加快 XML 处理速度?

javascript - 在对象数组中添加位置/顺序

java - 按内部对象(字符串、日期等)逆序对 ArrayList<Object[]> 进行排序

java - 为什么 java Stream.sorted() 给出不同的结果?

java - Java 8 中 Collections.sort 的问题

javascript - 获取javascript中以A到Z之间的特定字符开头的第一个文本的位置

java - 对采用列表作为参数的方法进行单元测试

java - 在 JList 中包含 List/ArrayList 项目不起作用