Java8中对List对象集合按照对象中的某个属性进行分组
分类:计算机 | Java | 集合 549
更新:2021-03-23 19:45:38编辑
参考资料
https://blog.csdn.net/linsongbin1/article/details/83933703
示例
package test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class ListGroupTest {
public static void main(String[] args) {
List<Coupon> couponList = new ArrayList<>();
Coupon coupon1 = new Coupon(1,100,"优惠券1");
Coupon coupon2 = new Coupon(2,200,"优惠券2");
Coupon coupon3 = new Coupon(3,300,"优惠券3");
Coupon coupon4 = new Coupon(3,400,"优惠券4");
couponList.add(coupon1);
couponList.add(coupon2);
couponList.add(coupon3);
couponList.add(coupon4);
Map<Integer, List<Coupon>> resultList = couponList.stream().collect(Collectors.groupingBy(Coupon::getCouponId));
System.out.println(JSON.toJSONString(resultList, SerializerFeature.PrettyFormat));
}
}
package test;
public class Coupon {
private Integer couponId;
private Integer price;
private String name;
public Coupon(Integer couponId, Integer price, String name) {
this.couponId = couponId;
this.price = price;
this.name = name;
}
public Integer getCouponId() {
return couponId;
}
public void setCouponId(Integer couponId) {
this.couponId = couponId;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
注意事项
Map中key键的数据类型要和进行分组的那个属性(Coupon::getCouponId)数据类型保持一致,否则会报数据类型不一致的错误。
猿导航
阅读排行榜
- 1vue和el-table使用经验-如何刷新表格数据6505
- 2uni-app使用经验—vue页面和html页面如何互相调用接口并传参3403
- 3nuxt.js项目中如何添加和使用全局变量1921
- 4如何用批处理命令(bat脚本)启动和停止windows服务1914
- 5nuxtjs asyncData使用经验—如何发起多个axios请求并携带参数1805
- 6Spring学习经验—@ResponseBody注解的使用说明1787
- 7Druid异常解决经验—java.sql.SQLException url not set1760
- 8解决SpringBoot使用maven下载不了jar包的问题1743
- 9Intellij IDEA下的版本控制VCS的启用与关闭1735
- 10linux如何成功地离线安装docker1618
- 11在Nuxt.js项目的head中引用外部js文件1586
- 12Nuxt.js项目实现路由鉴权和用户登录1575
- 13软件项目管理——详细设计说明书模板11537
- 14Windows中使用Nginx解决前后端分离部署中的跨域问题1479
- 15Element-UI学习经验——el-switch开关的用法1414