次のようなクラスがあります。
public class Site
{
String site_name;
int site_number;
}
そして、私はサイトの配列リストを持っています
ArrayList<Site> SitesArr = new ArrayList<Site>();
この SitesArr を site_number で並べ替えるにはどうすればよいですか?
2 つのオプションがあります。1 つ目は、クラスに実装するだけでなく、クラスにインターフェイスをSite
実装させることです。Comparable
compareTo
@Override
public int compareTo(Site o) {
Site s = (Site) o;
return this.site_number - s.site_number;
}
Comparator
2番目のオプションは、配列を並べ替えたい時間に固有の新しいものを作成することです:
new Comparator() {
@Override
public int compare(Site s1, Site s2) {
return (s1.getSiteNumber() - s2.getSiteNumber());
}
}
そして、呼び出すときにそれを使用します:
Collections.sort(SitesArr, comp);
この場合、最初のアプローチが正しいと思います