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,它不需要对您的站点类进行更改。您不想发表评论吗?