Atitit java js groupby 分组操作法
Atitit java js groupby 分组操作法
目录
1. 分组操作得到的数据结构Map<String, List<> 1
1.1. 1.对集合按照单个属性分组 1
2. 2对集合按照多个属性分组 1
2.1. solution 1 多个属性拼接出一个组合属性 1
2.2. solution 3 嵌套调用Java8 groupby 3
3. Js的分组 3
- 分组操作得到的数据结构Map<String, List<>
Java8的groupBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map
- 1.对集合按照单个属性分组
e.g. 按照skuId分组
Map<String, List<EntryDeliveryDetailywk>> detailsMap01 = dtos1.stream()
.collect(Collectors.groupingBy(EntryDeliveryDetailywk::getskuId));
————————————————
版权声明:本文为CSDN博主「kris999」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kris1025/article/details/80714361
- 2对集合按照多个属性分组
- solution 1 多个属性拼接出一个组合属性
将多个字段拼接成一个新字段,在使用Java8的groupBy进行分组
Map<String, List<EntryDeliveryDetailywk>> detailmap = details.stream()
.collect(Collectors.groupingBy(d -> fetchGroupKey(d) ));
private String fetchGroupKey(EntryDeliveryDetailywk detail){
return detail.getSkuId().toString()
+ detail.getItemsName()
+ detail.getWarehouseId().toString()
+ detail.getSupplierId().toString();
}
1
2
3
4
5
6
7
8
9
solution 2 造静态内部类
在集合元素类里构造静态内部类(成员变量即分组的对应多个属性)
e.g.
//静态内部类
class Person {
public static class NameAge {
public NameAge(String name, int age) {
...
}
// 注意 重写方法 must implement equals and hash function
}
public NameAge getNameAge() {
return new NameAge(name, age);
}
}
//分组
Map<NameAge, List<Person>> map = people.collect(Collectors.groupingBy(Person::getNameAge));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- solution 3 嵌套调用Java8 groupby
注意得到也是嵌套map
Map<String, Map<Integer, List<Person>>> map = people
.collect(Collectors.groupingBy(Person::getName,
Collectors.groupingBy(Person::getAge));
//调用
map.get("Fred").get(18);
————————————————
- Js的分组
function grp()
{
var grpkey="cate";
var storage=window.localStorage;
for(var i=0;i<storage.length;i++){
try{
var key=storage.key(i);
var v=storage.getItem(key);
var vo=JSON.parse(v);
console.log(key);
var lst_item={};
var grpkeyVal=vo[grpkey];
var arrlist=getGrpItemArrlistByItemkey(vo[grpkey]);
vo.localkey=key;
arrlist.push(vo);
grpObj[grpkeyVal]=arrlist;
}catch(e){}
}
console.log(grpObj);
}
var grpObj={};
function getGrpItemArrlistByItemkey(grpkeyVal)
{
var arrlist=grpObj[grpkeyVal];
if(!arrlist || arrlist.length==0 )
{
arrlist=new Array();
}
return arrlist;
}
版权声明:本文为CSDN博主「kris999」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kris1025/article/details/80714361
Atitit java js groupby 分组操作法相关推荐
- Atitit 数据存储的分组聚合 groupby的实现attilax总结
Atitit 数据存储的分组聚合 groupby的实现attilax总结 1. 聚合操作1 1.1. a.标量聚合 流聚合1 1.2. b.哈希聚合2 1.3. 所有的最优计划的选择都是基于现有统计 ...
- java group by_Java实现GroupBy/分组TopN功能
详情 在Java 8 的Lambda(stream)之前,要在Java代码中实现相似SQL中的group by分组聚合功能,还是比较困难的.这之前Java对函数式编程支持不是很好,Scala则把函数式 ...
- Atitit java 二维码识别 图片识别
Atitit java 二维码识别 图片识别 1.1. 解码1 1.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.1 1.3. 二维码的样例:2 1.4. 定位图案2 1. ...
- java 8 集合分组_Java 8:按集合分组
java 8 集合分组 在继续阅读Venkat Subramaniam的" Java函数式编程 "时,我到达了介绍Stream#collect函数的那部分. 我们想收集一个人,按年 ...
- Atitit.java jna 调用c c++ dll的原理与实践 总结 v2 q27
Atitit.java jna 调用c c++ dll的原理与实践 总结 v2 q27 1. Jna简单介绍1 2. Jna范例halo owrld1 3. Jna概念2 3.1. (1)需 ...
- Atitit JAVA p2p设计与总结 JXTA 2
Atitit JAVA p2p设计与总结 JXTA 2 JXTA 2 是开放源代码 P2P 网络的第二个主要版本,它利用流行的.基于 Java 的参考实现作为构建基础.在设计方面进行了重要的修改,以 ...
- Atitit.Java exe bat 作为windows系统服务程序运行
Atitit.Java exe bat 作为windows系统服务程序运行 1. 使用SC命令+srvany.exe (不错,推荐)+net start1 1.1. First 创建一个java的运 ...
- atitit. java jsoup html table的读取解析 总结
atitit. java jsoup html table的读取解析 总结 1. 两个大的parser ,,,jsoup 跟个 htmlparser 1 2. 资料比较 1 3. jsoup越佳. ...
- Atitit Java OpenCV 捕获视频
Atitit Java OpenCV 捕获视频 ,打开一段视频或默认的摄像头 有两种方法,一种是在定义类的时候,一种是用open()方法. 一. 读取视频序列 OpenCV提供了一个简便易用的框架以 ...
- Atitit.java c#这类编程语言的设计失败点attilax总结
Atitit.java c#这类编程语言的设计失败点attilax总结 1. Npe1 2. Api粒度过小而又没有提供最常用模式1 3. checked exception(jeig n jyejy ...
最新文章
- 将信息写入TXT文本中(java)
- 职业高中高一计算机的基本知识,职业高中计算机论文
- 网管的一天——按小时记录生活
- Python+Selenium自动化篇-5-获取页面信息
- 使用git同时连接gitlab和GitHub
- pta 是否完全二叉搜索树_23.二叉搜索树的后序遍历序列
- 计算机桌面桌面设置动态视频,电脑壁纸 篇一:电脑设置动态视频桌面图文教程...
- 无线传感网络——串口通信
- SigFox与LoRa技术原理、应用场景和商业模式上的比较
- java:判断字符串的开始或结尾
- MP FILTRI FMP0394BAA6M25NP01
- 南邮 OJ 2001 水獭看动漫
- appium用list定位相册里的图片
- EventBus 3.0 事件公交车
- 微信公众号点歌台php,【php】微信公众平台接口开发--点歌
- mysql表的导入和导出
- PC 电脑硬件检测相关工具
- Flutter Scaffold
- [数图] 实验三 傅里叶变换及其应用
- 《论文阅读》FlowStep3D: Model Unrolling for Self-Supervised Scene Flow Estimation
热门文章
- 查找css,查找CSS样式
- apache php过期,设置HTTP使用PHP和Apache过期头
- php微信公众号项目域名,微信公众号里“JS接口域名”实现分享功能
- PHP 中 flush() 与 ob_flush() 的区别
- algorithm头文件中的函数:remove()与remove_if() 函数,……
- 使用python构建基于hadoop的mapreduce日志分析平台
- 链接link使用href=“#”和href=##的区别
- OpenCV下的图片旋转(转)
- javascript窗口属性示意图
- MAX5内存盒给至强松绑 IBM X5架构继往开来