62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.*;
import java.util.stream.Collectors;
/**
* @author :jiaolian
* @date :Created in 2021-01-13 14:04
* @description:订单分组测试
* @modified By:
* 公众号:叫练
*/
public class OrderByGroupTest {
public static void main(String[] args) {
//创建订单;
List<Order> list = new ArrayList();
list.add(new Order("176",1700));
list.add(new Order("885",4400));
list.add(new Order("885",5100));
list.add(new Order("664",5000));
list.add(new Order("664",2500));
list.add(new Order("481",3000));
//将list按oid分组
Map<String,List<Order>> listMap = list.stream().collect(Collectors.groupingBy(Order::getOid));
//输出测试;
Set<Map.Entry<String,List<Order>>> set = listMap.entrySet();
Iterator<Map.Entry<String,List<Order>>> iterator = set.iterator();
while (iterator.hasNext()) {
Map.Entry entry = iterator.next();
System.out.println("key:"+entry.getKey()+" val:"+entry.getValue());
}
}
//TODO 简化订单对象
private static class Order {
//订单id
private String oid;
//价格
private double price;
public Order(String oid, double price) {
this.oid = oid;
this.price = price;
}
public String getOid() {
return oid;
}
public void setOid(String oid) {
this.oid = oid;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Order{" +
"oid='" + oid + '\'' +
", price=" + price +
'}';
}
}
}
简化了订单表Order,代码用到JDK1.8新特性List流化,一行代码就可以搞定将list分组,1.8以前需要通过订单id分组成list,然后把list再放入Map。下面是测试结果,如果对你有用,请给个关注哦!