直接上代码
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class GroupSortTest { public static void main(String[] args) { List<Order> list = new ArrayList<Order>(); Order o1 = new Order("10086","3",(long) 1008603); Order o2 = new Order("10086","2",(long) 1008602); Order o4 = new Order("10010","1",(long) 1001001); Order o5 = new Order("10000","3",(long) 1000003); Order o6 = new Order("10010","3",(long) 1001003); Order o7 = new Order("10000","1",(long) 1000001); Order o8 = new Order("10000","2",(long) 1000002); Order o9 = new Order("10010","2",(long) 1001002); Order o3 = new Order("10086","1",(long) 1008601); list.add(o1); list.add(o2); list.add(o3); list.add(o4); list.add(o5); list.add(o6); list.add(o7); list.add(o8); list.add(o9); Map<String, List<Order>> map = OrderSortByGroup(list); for(Map.Entry<String, List<Order>> entry : map.entrySet()){ for(Order o : entry.getValue() ){ System.out.println(entry.getKey() +"--"+o.getSeq()+"--"+o.getStatusId()); } } } public static Map<String, List<Order>> OrderSortByGroup(List<Order> list){ Map<String, List<Order>> map = new HashMap<String, List<Order>>(); for(Order order : list) { List<Order> staList = map.get(order.orderNo); if(staList==null){ staList = new ArrayList<Order>(); } Order od = new Order(); od.setSeq(order.seq);od.setStatusId(order.statusId); staList.add(od); Collections.sort(staList, new Comparator<Order>() { @Override public int compare(Order o1, Order o2) { return o1.getSeq().compareTo(o2.getSeq()); } }); map.put(order.orderNo, staList); } return map; } } class Order { String orderNo; //订单号 String seq; //订单节点序号 Long statusId; //订单节点主键 public Order() {} public Order(String orderNo, String seq, Long statusId) { super(); this.orderNo = orderNo; this.seq = seq; this.statusId = statusId; } public String getOrderNo() { return orderNo; } public void setOrderNo(String orderNo) { this.orderNo = orderNo; } public String getSeq() { return seq; } public void setSeq(String seq) { this.seq = seq; } public Long getStatusId() { return statusId; } public void setStatusId(Long statusId) { this.statusId = statusId; } }
运行结果:
10086--1--1008601
10086--2--1008602
10086--3--1008603
10000--1--1000001
10000--2--1000002
10000--3--1000003
10010--1--1001001
10010--2--1001002
10010--3--1001003
相关推荐
本文将深入探讨如何在SQL Server中实现分组排序并获取每组的特定行数据。 首先,我们要理解分组的概念。在SQL中,`GROUP BY`语句用于将数据根据一个或多个列进行分类,例如在示例代码中,我们根据`A.DocNo`, `A1....
在Android开发中,"城市列表(按照字母分组排序)"是一个常见的功能需求,它能够帮助用户更加方便快捷地找到所需的城市。这个功能通常应用于地图应用、天气应用或者是任何需要用户选择地理位置的软件。实现这样的...
### Oracle 分组排序统计高级用法详解 #### 一、Oracle分组排序和统计概述 在Oracle数据库中,实现分组排序和统计是一项常见的需求,主要用于处理大量的数据,并从中提取有价值的信息。通过合理运用SQL语句,特别...
### Hibernate Criteria 分组、排序与关联查询详解 #### 标题与描述理解 - **标题**:“hibernate criteria 分组 排序 关联”这一标题明确了本文将围绕Hibernate Criteria API进行分组、排序以及关联查询的具体...
Visual C++源代码 163 如何在水晶报表中分组排序记录Visual C++源代码 163 如何在水晶报表中分组排序记录Visual C++源代码 163 如何在水晶报表中分组排序记录Visual C++源代码 163 如何在水晶报表中分组排序记录...
Python分组排序KNN
JavaScript数据排序,根据数据中的字段,自定义排序方式,实现数据根据不同的字段值分组显示
### MySQL分组排序功能 #### 知识点概述 MySQL是一种广泛使用的开源关系数据库系统,因其性能稳定、易于管理等特点而受到开发者的喜爱。但在某些高级查询方面,MySQL相较于其他数据库(如Oracle)存在一定的局限性...
在SQL中,分组排序问题通常涉及到数据的聚合和排名,这是数据分析和报表生成的关键步骤。本问题的目标是检索每学期每门课的学生排名情况,包括学期、课程号、学号、总评成绩以及排名,按照特定的排序规则进行输出。 ...
在Crystal Reports中,分组和排序是数据呈现的关键步骤,特别是在C#.NET环境中,通过Visual Studio.NET进行开发时。这篇文章将深入探讨如何使用C#.NET编写源代码来实现这一功能。 首先,理解水晶报表(Crystal ...
在很多场景下,比如通讯录应用,我们希望实现一个按字母分组的列表,用户可以快速滚动到特定区域,这通常涉及到对数据进行字母分组排序并实现侧滑字母导航的功能。本文将详细探讨如何基于RecyclerView实现这一功能。...
ListView 分组排序是数据可视化中的关键概念,它帮助用户更有效地管理和理解大量数据。在此,我们将深入探讨如何在 WPF 中实现ListView的分组和排序功能。 首先,我们需要理解ListView的基本结构。ListView是基于...
sql 排序:row_number() over(partition by sjjl_id order by fksj desc,最优化的情况,里面放的有例子,大家可以参考
提出了分组排序算法,详细分析了算法的原理及其时间与空间复杂度,得出了在最坏情况下的时间复杂度是θ(mn);最好情况和平均情况下的时间复杂度均是θ(nlog(n/mk));在最坏情况下的空间复杂度是O(mn-m2+m)...
PowerQuery分组排序测试数据
"lambda表达式解决java后台分组排序过程解析" lambda表达式是Java 8中引入的一种新的语法特性,它允许开发者使用更加简洁的方式来编写代码。lambda表达式可以用来代替匿名内部类,简化代码的编写,并且提高代码的...
针对这一问题,本文引入了激活加权策略的分组排序学习方法,称为W-GSF。这种方法在GSF的基础上,引入激活单元对多元变量进行加权,利用神经网络动态学习这些权重。这样可以适应性地强调某些文档对排序的影响,特别是...
2. **分组排序(分组内排序)**: 在描述中,`OVER(PARTITION BY StatisticalDate)` 会根据 `StatisticalDate` 字段的值将数据分成不同的组,在每个组内再根据 `EquipName` 进行排序。这使得在同一个统计日期内的...
本话题将重点关注集合的分组和排序,这是处理数据时常见的需求。Java集合框架中的`List`接口和数组(Array)是两种常用的数据结构,它们在处理数据时各有优势。下面我们将深入探讨如何在Java中实现集合的分组与排序...