有时候不得不对数据手动排序分组,下面是一个简单的例子。
public void testSortListMap(){ List<Map<String, String>> retList = new ArrayList<Map<String, String>>(); Map<String, String> map2 = new HashMap<String, String>(); map2.put("createdate", "2014-10-01 03:00:00"); map2.put("course", "数学"); map2.put("avg", "80"); retList.add(map2); Map<String, String> map3 = new HashMap<String, String>(); map3.put("createdate", "2014-10-01 03:00:01"); map3.put("course", "数学"); map3.put("avg", "80"); retList.add(map3); Map<String, String> map4 = new HashMap<String, String>(); map4.put("createdate", "2014-09-01 03:00:00"); map4.put("course", "数学"); map4.put("avg", "89"); retList.add(map4); Map<String, String> map5 = new HashMap<String, String>(); map5.put("createdate", "2014-10-01 03:00:00"); map5.put("course", "语文"); map5.put("avg", "82"); retList.add(map5); Map<String, String> map6 = new HashMap<String, String>(); map6.put("createdate", "2014-10-01 03:00:00"); map6.put("course", "英语"); map6.put("avg", "83"); retList.add(map6); Map<String, String> map7 = new HashMap<String, String>(); map7.put("createdate", "2014-10-01 03:00:01"); map7.put("course", "语文"); map7.put("avg", "83"); retList.add(map7); Map<String, String> map8 = new HashMap<String, String>(); map8.put("createdate", "2014-09-01 03:00:00"); map8.put("course", "语文"); map8.put("avg", "87"); retList.add(map8); Map<String, String> map9 = new HashMap<String, String>(); map9.put("createdate", "2014-10-01 03:00:01"); map9.put("course", "english"); map9.put("avg", "63"); retList.add(map9); Map<String, String> map10 = new HashMap<String, String>(); map10.put("createdate", "2014-09-01 03:00:00"); map10.put("course", "english"); map10.put("avg", "77"); retList.add(map10); Map<String, String> map14 = new HashMap<String, String>(); map14.put("createdate", ""); map14.put("course", "A2"); map14.put("avg", "75"); retList.add(map14); Map<String, String> map11 = new HashMap<String, String>(); map11.put("createdate", "2014-09-01 04:00:00"); map11.put("course", "A2"); map11.put("avg", "77"); retList.add(map11); Map<String, String> map12 = new HashMap<String, String>(); map12.put("createdate", "2014-09-01 04:00:01"); map12.put("course", "A2"); map12.put("avg", "75"); retList.add(map12); Map<String, String> map13 = new HashMap<String, String>(); map13.put("createdate", "2014-09-01"); map13.put("course", "A2"); map13.put("avg", "75"); retList.add(map13); Map<String, String> map15 = new HashMap<String, String>(); map15.put("createdate", " "); map15.put("course", " "); map15.put("avg", "75"); retList.add(map15); sortMap(retList); } public void sortMap(List<Map<String, String>> retList) { //按时间分组 时间,科目倒序排列 for (Map<String, String> map : retList) { System.out.println(map.get("createdate") + "-----=" + map.get("course")); } System.out.println("-------------------------------------------------"); final DateFormat dateTimeDf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); final DateFormat dateDf = new SimpleDateFormat("yyyy-MM-dd"); Collections.sort(retList, new Comparator<Map<String, String>>() { public int compare(Map<String, String> arg0, Map<String, String> arg1) { String create_0Str = String.valueOf(arg0.get("createdate")); String create_1Str = String.valueOf(arg1.get("createdate")); Date create_0 = null, create_1 = null; try { if (!StringUtils.isBlank(create_0Str)) { if (create_0Str.indexOf(":") != -1) { create_0 = dateTimeDf.parse(create_0Str); } else { create_0 = dateDf.parse(create_0Str); } } if (!StringUtils.isBlank(create_1Str)) { if (create_1Str.indexOf(":") != -1) { create_1 = dateTimeDf.parse(create_1Str); } else { create_1 = dateDf.parse(create_1Str); } } } catch (Exception e) { e.printStackTrace(); } if (create_0 != null && create_1 != null) { if (create_0.after(create_1)) { return -1; } else if (create_0.before(create_1)) { return 1; } else { String course_0 = String.valueOf(arg0.get("course")); String course_1 = String.valueOf(arg1.get("course")); return course_0.compareTo(course_1); } } return create_1Str.compareTo(create_0Str); } }); System.out.println("--------------------排序后-----------------------------"); for (Map<String, String> map : retList) { System.out.println(map.get("createdate") + "-----=" + map.get("course")); } Iterator<Map<String, String>> it = retList.iterator(); String lastDate = null; int order = 1; boolean isStart = true; while (it.hasNext()) { Map<String, String> tmp = it.next(); String tmpD = String.valueOf(tmp.get("createdate")); if (isStart) { lastDate = tmpD; isStart = false; } if (!tmpD.equals(lastDate)) { lastDate = tmpD; order++; } tmp.put("order", String.valueOf(order)); } System.out .println("-------------- 排序分组后----------------------------------"); for (Map<String, String> map : retList) { System.out.println(map.get("order") + "---" + map.get("createdate") + "-----=" + map.get("course")); } }
结果为:
相关推荐
以上知识点介绍了List<Bean>转换为List<Map>的基本概念、步骤、以及实际应用的代码示例。同时,也涉及了List<Object>转换和list转换为JsonArray的相关知识,这些内容是Java开发中常见的数据结构转换方法,对于前端和...
将list<Map>转换成JavaBean的工具类
一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List<Map<String, Object>>结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List<Map<String, Object>...
在上述代码中,`saveListMapsToSharedPreferences`方法将`List<Map<String, List<String>>>`转换为JSON字符串并保存到SharedPreference,`readListMapsFromSharedPreferences`则读取JSON字符串并反序列化回原数据...
List<Long> ids = invoiceApiOrders.stream().map(InvoiceApiOrder::getId).collect(Collectors.toList()); /*创建数组*/ Long[] orderIds = new Long[ids.size()]; /*数组赋值*/ orderIds = ids.toArray(orderIds);...
ResultSet 转为 List<Map> ResultSet 转为 List<Map> 是一种常见的数据处理操作。在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用...
支持一个List<Map>按照MAP中的一个或者多个Key的value值的中英文来排序,自动识别字符和数字(包括[a-zA-z]?[0-9]*)排序
在FreeMarker中,遍历`List<Map<String>>`是常见的操作,尤其在处理从后端传来的复杂数据结构时。这篇博客链接虽然无法直接访问,但从标题来看,我们可以推测其内容可能涉及如何在FreeMarker模板中遍历一个包含Map...
拆分list,将list<bean>中的内容根据某一属性的值对list进行拆分,分组
可将list<T>转化成JSON字符串 使用方法 例: List<自定义类> l; ListChangeToJson.ListChangeToJson classJson = new ListChangeToJson.ListChangeToJson(); classJson.ArrayToJsonAll(l, "数组名字");
js/utils.js<br>IE6.0 测试通过<br><br>List:<br>add(var obj) //添加一个元素<br>remove(var index) //删除一个元素<br>get(var index) //获取一个元素<br>removeAll() //删除所有元素<br>toArray() //获取元素数组...
List<map>,List<Map<String, Object>>,多字段组合排序。提供一个简易的思路,如果需要进行参考。
`List<T>`是.NET Framework中`System.Collections.Generic`命名空间下的一个泛型集合类,它实现了`IList<T>`、`ICollection<T>`和`IEnumerable<T>`接口。`List<T>`是用于存储强类型对象的动态数组,允许快速的插入和...
在.NET框架中,`List<T>`是泛型集合类,它是`System.Collections.Generic`命名空间下的一个重要组件,用于存储一组特定类型的对象。这个类实现了`IList<T>`、`ICollection<T>`和`IEnumerable<T>`接口,使得它具有...
本文将深入探讨如何使用这些技术来发布Web服务,特别是涉及复杂对象如List、Map及List<Map>的传递。 首先,Spring框架是一个Java企业级应用开发的强大工具,它提供了众多模块,包括Spring MVC用于Web开发。在Spring...
标题“c#list<>添加数据”指的是如何向已经实例化的`List<T>`对象中添加数据。描述中提到“list<>.count==0”的情况,即列表为空时,需要向列表中添加数据。下面我们将详细讲解如何操作。 首先,我们来看代码中的`...
Map<String, String> result = new HashMap<>(); NodeList nodeList = root.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node.getNodeType() == ...
例如,如果你有一个JSON数组,你可能希望将其解析为`IList<string>`或`IList<MyCustomClass>`,具体取决于JSON数据的内容。 C#中解析JSON通常使用的是Json.NET库,这是一个非常流行且功能强大的开源库,可以方便地...
`T`代表你想要存储的对象类型,例如`List<int>`表示存储整数的列表,`List<string>`则表示字符串列表。 **方法一:使用XmlNodeReader** 第一种方法是通过`XmlNodeReader`来逐个读取XML节点,并将其转化为指定的...
List<Map<String, String>> userList = new ArrayList<>(); for (Map<String, String> user : userList) { String userName = user.get("name"); String userEmail = user.get("email"); // 处理每个用户的姓名和...