Map根据传入的参数的值分组(类似数据库groupBy),主要用于map数据的分组,例如,一个map里面的一列包含了学生信息(姓名,年龄,性别,班级,年级),如果需要根据 年级和班级分组,就可以使用这个方法:
MyUtil .groupByParams(map,Arrays.asList(“年级”,“班级”))
用到了 hutool,也可以使用最新的仓库
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.7</version> </dependency>
java 代码如下
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MyUtil {
/**
* 根据 参数值 分组
*/
public static Map<String, List<Map<String, Object>>> groupByParams(List<Map<String, Object>> data, List<String> params) {
if (CollUtil.isEmpty(data) || CollUtil.isEmpty(params)) {
throw new RuntimeException("参数为空...");
}
Map<String, List<Map<String, Object>>> res = new HashMap<>();
StringBuffer keyBf = new StringBuffer("");
for (Map<String, Object> datum : data) {
//清除 keyBf 的值
keyBf.setLength(0);
for (String param : params) {
String k = MapUtil.getStr(datum, param);
if (StrUtil.isNotBlank(k)) {
keyBf.append("-").append(k);
}
}
if (StrUtil.isBlank(keyBf)) {
throw new RuntimeException("参数查不到相应数据,无法作为 key 分组...");
}
String key = keyBf.toString().substring(1);
List<Map<String, Object>> val = res.get(key);
if (CollUtil.isEmpty(val)) {
val = new ArrayList<>();
}
val.add(datum);
res.put(key, val);
}
return res;
}
}
以下内容可以忽略
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】
发文助手会检测您的文章标题、错别字、内容质量,助您提升文章质量。【创作规范】