ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何在java中对多个ArrayLists进行排序

2019-06-23 19:12:30  阅读:150  来源: 互联网

标签:java android sorting arraylist


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

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

这是我的ArrayLists:

//******* 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

我需要对速率列表进行排序,还要更改其他列表的索引.

解决方法:

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

您必须在此Restaurant类中实现Comparable,以定义您的餐厅应如何分类.

编辑:

您的餐厅课程将如下所示:

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);

标签:java,android,sorting,arraylist
来源: https://codeday.me/bug/20190623/1273556.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有