我想知道是否有办法对自定义对象的 Arraylist 进行排序以适应下面解释的情况?我假设我必须编写一个自定义比较器。
假设我有一个如下所示的对象类:
public class Person {
private String status; //options: Online, Away, Offline
private String name; //Person's name
private Date date; //Last signed on
//basic constructor
public Person() {
//set default values
}
//constructor to set all variables
public Person(String s, String n, Date d) {
status = s;
name = n;
date = d;
}
//setters & getters for each of the fields
}
根据姓名和日期进行排序应该相当容易。但是,我想知道如何根据状态进行排序?我希望能够根据此人当前是否在线以及谁离线对我的数组进行排序。我不太关心谁不在。
上面的类只是一个示例类。我的实际班级有一个 JLabel 根据状态设置一个图标。setText()
剩余未使用。我想到了将标签设置为 0、1 和 2 值并仅使用典型整数比较器的可能性,但我不确定这是否是一种建议的方法。
当然,我在这里缺少一个明显的解决方案,所以也许评论或链接可以提供必要的信息。我知道这里有大量的“排序数组列表”线程,我浏览了很多。他们中的大多数只是按字母顺序或整数排序字符串。