Java 按属性对ArrayList排序

Java 按属性对ArrayList排序,java,arraylist,Java,Arraylist,我有这样的课: public class Site { String site_name; int site_number; } 我有一个网站列表 ArrayList<Site> SitesArr = new ArrayList<Site>(); ArrayList sitesar=new ArrayList(); 如何按站点编号对该站点进行排序?使用集合api,如collection.sort(列表) 您有两个选择,首先是让您的站点类实现可

我有这样的课:

public class Site
{
    String site_name;
        int site_number;
}
我有一个网站列表

ArrayList<Site> SitesArr = new ArrayList<Site>();
ArrayList sitesar=new ArrayList();

如何按站点编号对该站点进行排序?

使用集合api,如collection.sort(列表)

您有两个选择,首先是让您的
站点
类实现
可比
接口,而不仅仅是在类中实现
可比

@Override 
public int compareTo(Site o) {
    Site s = (Site) o; 
    return this.site_number - s.site_number;
}
第二个选项是创建一个新的
比较器
,该比较器特定于要对数组排序的时间:

new Comparator() {
    @Override
    public int compare(Site s1, Site s2) {
        return (s1.getSiteNumber() - s2.getSiteNumber());
    }
}
然后在呼叫时使用它:

Collections.sort(SitesArr, comp);

我认为第一种方法适合这种情况

。检查此项以供参考。您需要可比和比较器。请阅读这些内容。使用comparator,它不需要对您的站点类进行更改。您不想发表评论吗?