对List<Map>里的map的某个属性重复的值进行处理的方法
package test; import java.util.*;
import java.util.stream.Collectors; public class Test5 { public static void main(String[] args) { List<LinkedHashMap<String, Object>> list = new ArrayList<>();
list.add(new LinkedHashMap<String, Object>() {{
put("id", "a");
put("age", "13");
put("sex", "男");
}});
list.add(new LinkedHashMap<String, Object>() {{
put("id", "a");
put("age", "14");
put("sex", "男");
}});
list.add(new LinkedHashMap<String, Object>() {{
put("id", "b");
put("age", "14");
put("sex", "男");
}});
list.add(new LinkedHashMap<String, Object>() {{
put("id", "c");
put("age", "14");
put("sex", "男");
}});
list.add(new LinkedHashMap<String, Object>() {{
put("id", "");
put("age", "14");
put("sex", "男");
}});
list.add(new LinkedHashMap<String, Object>() {{
put("id", "c");
put("age", "14");
put("sex", "男");
}}); handleRepeatPrimaryKey(list, "id");
List<LinkedHashMap<String, Object>> hasList = new ArrayList<>();
hasList = list.stream().filter(x -> !x.get("id").toString().equals("")).collect(Collectors.toList());
List<LinkedHashMap<String, Object>> notHasList = new ArrayList<>();
notHasList = list.stream().filter(x -> x.get("id").toString().equals("")).collect(Collectors.toList()); System.out.println(hasList);
System.out.println(notHasList); } public static List<LinkedHashMap<String, Object>> handleRepeatPrimaryKey(List<LinkedHashMap<String, Object>> list, String id) {
List<LinkedHashMap<String, Object>> itemList = new ArrayList<>();
for (LinkedHashMap<String, Object> lhm : list) {
if (itemList.size() == 0) {
itemList.add(lhm);
} else {
ListIterator<LinkedHashMap<String, Object>> listIterator = itemList.listIterator();
while (listIterator.hasNext()) {
if (listIterator.next().get(id).toString().equals(lhm.get(id).toString())) {
lhm.put(id, "");
}
}
// 注意放在循环外面
listIterator.add(lhm);
}
}
return list;
}
}

对重复主键进行处理,取第一个,剩余的主键都置空,嗯,能满足我的需求。不知道还有没有更好的方法?
对List<Map>里的map的某个属性重复的值进行处理的方法的更多相关文章
- 用jQuery在IFRAME里取得父窗口的某个元素的值
收集网上的一些示例: 用jQuery在IFRAME里取得父窗口的某个元素的值 只好用DOM方法与jquery方法结合的方式实现了 1.在父窗口中操作 选中IFRAME中的所有单选钮 $(window. ...
- 递归将Map里的字段名由驼峰转为下划线
导航 定位 概述 算法设计 递归技巧 代码实现 定位 本文适合于想要使用Java递归地将Map里的Key字段名从驼峰转为下划线,或者想了解如何处理任意递归的Map结构的筒鞋. 概述 在进行多语言混合编 ...
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- C++中基于Crt的内存泄漏检测(重载new和delete,记录在Map里)
尽管这个概念已经让人说滥了 ,还是想简单记录一下, 以备以后查询. #ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FIL ...
- mybatia的mypper.xml文件,参数类型为map,map里有一个键值对的值为数组,如何解析,例子可供参考,接上文,发现更简便的方法,不必传数组,只需传字符串用逗号隔开即可
是这样的 先看参数 map.put("orgId", "1818"); map.put("childDeps", "1000,10 ...
- Java实现递归将嵌套Map里的字段名由驼峰转为下划线
摘要: 使用Java语言递归地将Map里的字段名由驼峰转下划线.通过此例可以学习如何递归地解析任意嵌套的List-Map容器结构. 难度:初级 概述 在进行多语言混合编程时,由于编程规范的不同, 有时 ...
- Go语言 判断key是否在map里 if _, ok := map[key]; ok
if val, ok := map[key]; ok { //do something here } 如果key在map里 val 被赋值map[key] ok 是true 否则val得到相应类型的零 ...
- java里遍历map的常见方式
public static void main(String[] args) { Map<String, String> map = new HashMap<String, Stri ...
- 获取map中的一个value值以及遍历map获得map里所有key、value的值
前言: 1.声明一个map: Map map = new HashMap();2.向map中放值,注意:map是key-value的形式存放的.如: map.put(”sa”,”dd”); 3.从ma ...
随机推荐
- luogu P1216 [IOI1994][USACO1.5]数字三角形 Number Triangles (递推)
链接:https://www.luogu.org/problemnew/show/P1216 题面: 题目描述 观察下面的数字金字塔. 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的 ...
- hdoj1711(kmp算法)
题目链接:https://www.cnblogs.com/kuangbin/archive/2012/08/14/2638803.html 题意:给定两个数组a.b,在数组a中查找b,求第一次出现的下 ...
- js中实现输入框类似百度搜索的智能提示效果
说明:我这里显示的数据采用词典(词典在js中自定义的,看下面文字),主要显示key. 页面元素: <style type="text/css">.search { le ...
- ubuntu下java的安装与执行
一.安装java sudo add-apt-repository ppa:linuxuprising/java sudo apt-get update sudo apt-get install ora ...
- php中的访问类型(public,private,protected)
类型的访问修饰符允许开发人员对类成员的访问进行限制,这是PHP5的新特性.但却是oop语言的一个好的特性.而且大多数的oop语言都已支持此特性.PHP5支持三种访问修饰符: public(公有的,默认 ...
- k8s之RBAC-基于角色的访问控制
一个在名称空间内的对象的完整url模板: Object_URL: /apis/<GROUP>/<VERSION>/namespaces/<NAMESPACE_NAME&g ...
- javascript 构建模块化开发
在使用 sea.js .require.js . angular 的时候. 我们使用到 define . module(require) 的方式,定义模块,和依赖模块 下面给出 define 和 m ...
- 【ES6 】ES6 字符串扩展及新增方法
模板字符串 传统写法 var str = 'There are <b>' + basket.count + '</b> ' + 'items in your basket, ' ...
- kubernetes 实现redis-statefulset集群
Kubernetes 通过statefulset部署redis cluster集群 部署redis集群方式的选择 Statefulset Service&depolyment 对于redis, ...
- JDK + Tomcat 安装 + 制作自定义镜像【第 3 篇 系统镜像】
[第 1 篇 JDK]:https://www.cnblogs.com/del88/p/11842387.html[第 2 篇 Tomcat]:https://www.cnblogs.com/del8 ...