对List<Map<string,string>>排序,要求可以按照正序、逆序排序(代码写不出来可以写原理)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对List<Map<string,string>>排序,要求可以按照正序、逆序排序(代码写不出来可以写原理)相关的知识,希望对你有一定的参考价值。
参考技术A list集合本身就是有序的数组,for(int i=0;i<list.length;i++)list[i]//正序
for(int i=list.length;i>0;i--)
list[i]//逆序
对list中map中的key值进行排序
//对时间戳进行排序 获取最新的map
List<Map<String, Object>> dateList = new ArrayList<Map<String, Object>>(); Map<String, Object> paramsValue = new HashMap<String, Object>(); paramsValue.put("userId", user.getId()); List<SafeConfess> safeConfessList = safeConfessService.querySafeConfessAndContent(paramsValue); if (safeConfessList.size()>0) { SafeConfess safeConfess = safeConfessList.get(0); Date date2 = DateUtils.parseDate(safeConfess.getCreateTime(), "yyyy-MM-dd HH:mm:ss"); Map<String, Object> mapTemp = new HashMap<String, Object>(); mapTemp.put("content", safeConfess.getSafeName()); mapTemp.put("dateTime", date2.getTime()); mapTemp.put("type", "1"); dateList.add(mapTemp); } List<TrainEvaluation> resultList = trainEvaluationService.queryTrainEvaluation(paramsValue); if (resultList.size()>0) { TrainEvaluation trainEvaluation = resultList.get(0); Date date1 = DateUtils.parseDate(trainEvaluation.getCreateTime(), "yyyy-MM-dd HH:mm:ss"); Map<String, Object> mapTemp = new HashMap<String, Object>(); mapTemp.put("content", trainEvaluation.getTrainName()); mapTemp.put("dateTime", date1.getTime()); mapTemp.put("type", "2"); dateList.add(mapTemp); } paramsValue.remove("userId"); paramsValue.put("problemPersonId", user.getId()); List<Rectification> queryRectification = rectificationService.queryRectification(paramsValue); if (queryRectification.size()>0) { Rectification rectification = queryRectification.get(0); Date date3 = DateUtils.parseDate(rectification.getCreateTime(), "yyyy-MM-dd HH:mm:ss"); Map<String, Object> mapTemp = new HashMap<String, Object>(); mapTemp.put("content", rectification.getRectifyName()); mapTemp.put("dateTime", date3.getTime()); mapTemp.put("type", "3"); dateList.add(mapTemp); } for (Map<String, Object> map1 : dateList) { System.out.println(map1.get("dateTime")); } //按时间升序排列 Collections.sort(dateList, new Comparator<Map<String, Object>>() { public int compare(Map<String, Object> o1, Map<String, Object> o2) { BigInteger date1 = new BigInteger(o1.get("dateTime").toString()) ; BigInteger date2 = new BigInteger(o2.get("dateTime").toString()) ; return date1.compareTo(date2); } }); //排序后 System.out.println("-------------------"); for (Map<String, Object> map1 : dateList) { System.out.println(map1.get("dateTime")); }
以上是关于对List<Map<string,string>>排序,要求可以按照正序、逆序排序(代码写不出来可以写原理)的主要内容,如果未能解决你的问题,请参考以下文章
对 Map<String, List<String>> 类型的映射中的值进行排序
_InternalLinkedHashMap<String, dynamic>' 不是类型 'List<Map<dynamic, dynamic>>' 的子类型