-2

次のようなクラスがあります。

public class Site
{
    String site_name;
        int site_number;
}

そして、私はサイトの配列リストを持っています

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

この SitesArr を site_number で並べ替えるにはどうすればよいですか?

4

2 に答える 2

1

2 つのオプションがあります。1 つ目は、クラスに実装するだけでなく、クラスにインターフェイスをSite実装させることです。ComparablecompareTo

@Override 
public int compareTo(Site o) {
    Site s = (Site) o; 
    return this.site_number - s.site_number;
}

Comparator2番目のオプションは、配列を並べ替えたい時間に固有の新しいものを作成することです:

new Comparator() {
    @Override
    public int compare(Site s1, Site s2) {
        return (s1.getSiteNumber() - s2.getSiteNumber());
    }
}

そして、呼び出すときにそれを使用します:

Collections.sort(SitesArr, comp);

この場合、最初のアプローチが正しいと思います

于 2013-06-18T07:39:56.040 に答える