【问题标题】:How to sort multiple ArrayLists all together in java如何在java中将多个ArrayLists一起排序
【发布时间】:2015-09-13 23:34:55
【问题描述】:

我正在开发一个保存有关餐厅信息的应用程序,每个餐厅都有 5 个信息“如下面的代码中所列”,我需要根据费率对餐厅进行排序。但是,在我根据速率排序后,我需要将所有数组列表同步在一起,以便它们的信息正确匹配。

我有 5 个 ArrayList,我需要对其中一个进行排序,但我还想更改其他 4 个 ArrayList 的索引,以便它们可以相互匹配。我尝试了地图列表,但它告诉我我可以只使用 2 个参数而不是 5 个。

这是我的数组列表:

//******* Arrays that holds information of restaurants taken from SERVER
static public ArrayList<String> name = new ArrayList<String>();
static public ArrayList<String> lng = new ArrayList<String>();
static public ArrayList<String> lat = new ArrayList<String>();
static public ArrayList<String> address = new ArrayList<String>();
static public ArrayList<String> rate = new ArrayList<String>();
static public ArrayList<String> comment = new ArrayList<String>();
//private Map<String, String> sorted = new HashMap<>(); Doesn't work with 5 parameters

我需要对rate List进行排序,还要更改其他的索引。

【问题讨论】:

  • 创建一个包含所有必填字段的模型,创建模型对象的List,对列表进行排序。
  • 真的完全不清楚你要做什么。此外,人们会善意地尝试实际解决问题。
  • @karaokyo 我正要说 :) 然后使用 Collections.sort 并覆盖您的 Comparator
  • @RobertMoskal 我编辑了我认为现在更清楚的问题。
  • @karaokyo 你的意思是我只是创建一个包含所有 5 个数组列表的列表吗?然后只对其中一个数组列表进行排序?

标签: java android sorting arraylist


【解决方案1】:

您可以创建一个包含各种字符串属性的对象餐厅。 这样您就可以只拥有一个列表并对其调用 sort 以一次对所有信息进行排序。

您必须在这个 Restaurant 类中实现 Comparable 来定义您的餐厅应该如何排序。

编辑:

您的 Restaurant 课程如下所示:

public class Restaurant implements Comparable<Restaurant>{

    private String name;
    private String lng;
    private String lat;
    private String address;
    private String rate;
    private String comment;

    ...
    constructor/getters/setters
    ...

    @Override
    public int compareTo(Restaurant rest) {
        //TODO: check if rate is null if this can happen in your code
        return rate.compareTo(rest.rate); //comparing on rate attribute
    }

}

然后你可以用

替换你的代码
static public ArrayList<Restaurant> restaurants = new ArrayList<Restaurant>();
Collections.sort(restaurants);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2013-08-28
    • 1970-01-01
    • 2013-09-14
    • 2013-07-09
    • 1970-01-01
    • 2021-07-10
    相关资源
    最近更新 更多