List集合合并指定数据
来源:互联网 发布:监控硬盘覆盖数据恢复 编辑:程序博客网 时间:2024/05/16 14:14
* 根据指定字段合并数据,PageData为HashMap
* @param pgList
* @param fields 指定字段,可以用 Arrays.asList("SEX","AGE")来传值;
* @return
*/
public static List<PageData> analysisPageData(List<PageData> pgList, List<String> fields){
List<PageData> resultList = null;
if(fields==null || fields.isEmpty()){//未指定判定字段,直接返回源数据
resultList = pgList;
} else {
if(pgList!=null && !pgList.isEmpty()){
int mergedIndex = -1;//合并后序号
int originalIndex = 0;//未合并前原始序号
PageData preObj = null;
List<PageData> childs = null;
resultList = new ArrayList<PageData>();
for (PageData pd : pgList) {
pd.put("rowNums", originalIndex);
originalIndex++;
if(preObj==null || !preObj.equals(pd, fields)){
preObj = pd;
childs = new ArrayList<PageData>();
pd.put("childs", childs);
resultList.add(pd);
mergedIndex++;
} else {
childs.add(pd);
}
pd.put("indexs", mergedIndex);
}
}
}
return resultList;
}
//pageData 中重写了equals方法
/**
* 判断两个对象指定字段值是否一致
* @param pd
* @param fields
* @return
*/
public boolean equals(PageData pd, List<String> fields) {
boolean isEqual = true;
if(pd!=null && fields!=null && !fields.isEmpty()){
for (String field : fields) {
isEqual = isEqual && this.isEqual(this.getString(field), pd.getString(field));
}
}
return isEqual;
}
/**
* 判断两个字符串是否一致
* @param str1
* @param str2
* @return
*/
private boolean isEqual(String str1, String str2) {
boolean isAllNull = (str1==null && str2==null);
boolean isAllEmpty = (str1!=null && str1.trim().equals("") && str2!=null && str2.trim().equals(""));
return isAllNull || isAllEmpty || (str1!=null && str2!=null && str2.trim().equals(str1.trim()));
}
- List集合合并指定数据
- 合并两个list数据集合
- 合并两个数据集合
- List集合数据排序
- Python ,list数据集合
- 利用list来合并数据
- 合并两个list集合并且排序
- 【Basic Code】List集合合并相关项
- 合并两个list集合并且排序
- list集合中按照指定属性排序
- list集合手动添加数据
- GreenDao存储list集合数据
- 获取list集合指定变量的值的集合
- list 根据相同字段合并数据
- list同对象合并并汇总指定属性
- 合并一个List中相同元素,并汇总指定属性
- 两个List<Model>集合合并 并且去重方式
- ASP.Net 后台执行导出Excel list集合 有跨行合并
- node.js知识点
- 在小米手机上真机调试
- 如何在3D场景中选择物体并显示轮廓效果
- 微信Mysql的数据操作语言DML
- iOS开发- 如何生成.a文件
- List集合合并指定数据
- Mariadb(mysql)基本操作
- linux基础学习总结02
- 28. Implement strStr()徒手尝试#3(Done)
- 第一个存储过程,写了很长时间,记录一下
- iBeacon工作原理
- 解决idea不检查语法错误问题
- xml格式异常-CDATA嵌套
- 把office文档转换为html过程中的一些坑