欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Map&List排序

程序员文章站 2024-03-14 21:55:59
...

1、需求说明

有时候,后台返回的数据是无序的,但是显示的时候需要按照一定的顺序显示。


2、无序list

2.1、数据格式

{
  "obj": {
    "itemId": 1,
    "jobId": 3,
    "list": [
      {
        "answerTag": "D",
        "answerRate": 0.29
      },
      {
        "answerTag": "A",
        "answerRate": 0.29
      },
      {
        "answerTag": "B",
        "answerRate": 0.14
      },
      {
        "answerTag": "C",
        "answerRate": 0.29
      }
    ],
    "rightRate": 0,
    "typeId": 3,
    "wrongRate": 0
  },
  "code": 1,
  "msg": "查询用户练习单选题答案比例成功"
}

2.2、数据对应的Bean

Map&List排序
Map&List排序

2.3、数据排序代码

 List<PractiseAnswerRateBean.ListBean> list = mData.getList();
        Collections.sort(list, new Comparator<PractiseAnswerRateBean.ListBean>() {
            @Override
            public int compare(PractiseAnswerRateBean.ListBean o1, PractiseAnswerRateBean.ListBean o2) {
                return o1.getAnswerTag().compareTo(o2.getAnswerTag());
            }
        });

3、无序map

3.1、数据格式

题目的选项选项标识,现在需求是所有选项都按照“A、B、C、D”显示。(选项和选项标识必须一一对应,因为选项标识有可能是“1、2、3、4”来表示)

Map&List排序


3.2、数据对应的Bean

AnswerList 属性存储的是item_content,题目的所有选项;
AnswerTagList属性存储的是item_number,题目的所有选项对应的选项标识。

Map&List排序


3.3、数据排序代码

QuestionBean mData;
...
String answerTags = mData.getAnswerTagList();
String answerContents = mData.getAnswerList();
if (TextUtils.isEmpty(answerTags) || TextUtils.isEmpty(answerContents)) return;
   String[] mAnswerTags = answerTags.split(",");
   String[] mAnswerContents = answerContents.split(",");
   Map<String, String> map = new HashMap<>();
   for (int i = 0; i < mAnswerTags.length; i++) {
        map.put(mAnswerTags[i], mAnswerContents[i]);
   }
   list = new ArrayList<>(map.entrySet());
   Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
      //升序排序
      public int compare(Map.Entry<String, String> o1,Map.Entry<String, String> o2) {
                return o1.getKey().compareTo(o2.getKey());
      }
  });

3、总结

主要用到的是集合的sort方法,里面使用compare方法进行比较排序。

相关标签: 排序 map list