【问题标题】:Sort ArrayList by its properties [duplicate]按属性对ArrayList进行排序[重复]
【发布时间】:2013-06-14 07:48:41
【问题描述】:

我的课看起来像这样:

public class Site
{
    String site_name;
        int site_number;
}

我有一个网站数组列表

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

如何按 site_number 对 SitesArr 进行排序?

【问题讨论】:

  • mkyong.com/java/…。检查此以供参考
  • 您需要可比较和比较器。只需阅读这些内容。
  • 使用比较器,它不需要对您的站点类进行任何更改。

标签: java arraylist


【解决方案1】:

您有两个选择,首先是让您的Site 类实现Comparable 接口,而不是只在您的类中实现compareTo

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

第二个选项是创建一个新的Comparator 特定于您要对数组进行排序的时间:

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

然后在调用时使用它:

Collections.sort(SitesArr, comp);

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

【讨论】:

    【解决方案2】:

    使用 Collection.sort(list) 等集合 api;

    【讨论】:

    • 不应该是评论吗?
    猜你喜欢
    • 2013-05-21
    • 2020-01-12
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2011-03-21
    • 2017-12-11
    相关资源
    最近更新 更多