今天小编就为大家分享一篇关于JAVA JDK8列表分组的实现和用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
概述
对目录进行分组是日常开发中,经常遇到的,在JDK 8中对目录按照某个属性分组的代码,超级简单。
包装测试;
导入com。阿里巴巴。快速JSON。JSON
导入com。阿里巴巴。快速JSON。序列化程序。序列化程序功能;
导入Java。util。ArrayList
导入Java。util。列表;
导入Java。util。地图;
导入Java。util。溪流。收藏家;
公共类ListGroupTest {
公共静态void main(String[] args) {
list coupon优惠券列表=new ArrayList();
优惠券coupon1=新优惠券(1,100,'优惠券1');
优惠券耦合2=新优惠券(2,200英镑优惠券2');
优惠券3=新优惠券(3,300英镑优惠券3');
优惠券4=新优惠券(3,400英镑优惠券4');
优惠券列表。添加(优惠券1);
优惠券列表。添加(优惠券2);
优惠券列表。添加(优惠券3);
优惠券列表。添加(优惠券4);
MapInteger,list优惠券结果列表=优惠券列表。流().收藏(收藏者。分组依据(Coupon:getCouponId));
系统。出去。println(JSON。tojsonstring(结果列表,序列化功能.蛮格式));
}
}
包装测试;
公共类别优惠券{
私有整数couponId
私人整数价格;
私有字符串名称;
公共优惠券(整数couponId,整数价格,字符串名称){
this.couponId=couponId
this.price=价格;
this.name=name
}
公共整数getCouponId() {
返回couponId
}
public void setCouponId(Integer couponId){
this.couponId=couponId
}
公共整数getPrice() {
退货价格;
}
公共无效定价(整数价格){
this.price=价格;
}
公共字符串getName() {
返回名称;
}
公共void集合名称(字符串名){
this.name=name
}
}
上面的例子是对目录按照couponId分组,couponId一样的,归为一组。打印结果如下:
{
1:[
{
' couponId':1,
姓名':'优惠券1',
价格:100英镑
}
],
2:[
{
' couponId':2,
姓名':'优惠券2',
价格:200英镑
}
],
3:[
{
' couponId':3,
姓名':'优惠券3',
价格:300英镑
},
{
' couponId':3,
姓名':'优惠券4',
价格:400英镑
}
]
}
如果分组后,分组内并不想是对象,而是对象的属性,也可以做到的。
包装测试;
导入com。阿里巴巴。快速JSON。JSON
导入com。阿里巴巴。快速JSON。序列化程序。序列化程序功能;
导入Java。util。ArrayList
导入Java。util。列表;
导入Java。util。地图;
导入Java。util。溪流。收藏家;
公共类列表组测试2 {
公共静态void main(String[] args) {
list coupon优惠券列表=new ArrayList();
优惠券coupon1=新优惠券(1,100,'优惠券1');
优惠券耦合2=新优惠券(2,200英镑优惠券2');
优惠券3=新优惠券(3,300英镑优惠券3');
优惠券4=新优惠券(3,400英镑优惠券4');
优惠券列表。添加(优惠券1);
优惠券列表。添加(优惠券2);
优惠券列表。添加(优惠券3);
优惠券列表。添加(优惠券4);
MapInteger,ListString结果列表=优惠券列表。流().收藏(收藏者。分组依据(Coupon:getCouponId,collectors。映射(Coupon:getName,collectors。to list()))));
系统。出去。println(JSON。tojsonstring(结果列表,序列化功能.蛮格式));
}
}
这样分组内就是名字属性了。打印结果如下:
{
1:[
'优惠券1'
],
2:[
'优惠券2'
],
3:[
'优惠券3',
'优惠券4'
]
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。