import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Test {
@org.junit.Test
public void test1(){
List<Order> orderList = new ArrayList<>();
Order order1 = new Order("1","1","1",new BigDecimal("8.78"),"2 apples");
Order order2 = new Order("2","1","2",new BigDecimal("2.78"),"2 potatos");
Order order3 = new Order("3","2","1",new BigDecimal("12.78"),"4 apples");
orderList.add(order1);
orderList.add(order2);
orderList.add(order3);
Map<String, List<Order>> orderMap = orderList.stream().collect(Collectors.groupingBy(Order::getProductId));
for(Map.Entry<String,List<Order>> entry : orderMap.entrySet()){
String key = entry.getKey();
List<Order> orders = entry.getValue();
System.out.println("分组名称:"+key+"\n组中productId=" + orders.stream().map(Order::getProductId).collect(Collectors.joining(",")));
}
}
private class Order{
private String orderId;
private String userId;
private String productId;
private BigDecimal amt;
private String desc;
public Order(String orderId, String userId, String productId, BigDecimal amt, String desc) {
this.orderId = orderId;
this.userId = userId;
this.productId = productId;
this.amt = amt;
this.desc = desc;
}
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public BigDecimal getAmt() {
return amt;
}
public void setAmt(BigDecimal amt) {
this.amt = amt;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术