首页 > 其他分享 >list<Object> 对象集合 去重

list<Object> 对象集合 去重

时间:2022-08-18 11:58:49浏览次数:47  
标签:return stream 对象 List list userList 集合 new

在项目中遇到了在list集合中,要根据User对象的ID进行去重.使用了以下几种方法,但唯独第三种生效.先挖个坑,等我看完文档了,再来填.

          public static List<User> removeDuplicate(List<User> list) {
		ObjectMapper objectMapper = new ObjectMapper();
		try {
			List<User> tempList = new ArrayList<>();
			System.out.println("去重前:"+objectMapper.writeValueAsString(list.toString()));
			/**
			 * 第一种 不生效
			 */
//			list = list.stream().distinct().collect(Collectors.toList());
			/**
			 * 第二种 不生效
			 */
//			List<User> returnList = list.stream().filter(
//					v -> {
//						if (tempList.contains(v.getId())){
//							return false;
//						}else {
//							tempList.add(v);
//							return true;
//						}
//					}
//			).collect(Collectors.toList());
			/**
			 * 第三种 生效
			 */
			List<User> userList_new = Lists.newArrayList();
			list.stream().forEach(
					s -> {
						if (!userList_new.contains(s)) {
							userList_new.add(s);
						}
					}
			);
			System.out.println("去重后:"+objectMapper.writeValueAsString(userList_new.toString()));
			return list;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	     }

标签:return,stream,对象,List,list,userList,集合,new
From: https://www.cnblogs.com/bugDiDiDi/p/16591670.html

相关文章

  • 将一个list均分成n个list
    packageorg.apache.test;importjava.util.ArrayList;importjava.util.List;publicclassJavaDemo{/***将一个list均分成n个list**@param......
  • 类与对象 ——封装——类(class)
    类和对象C++面向对象的三大特性为:==封装、继承、多态==C++认为==万事万物都皆为对象==,对象上有其属性和行为例如:​人可以作为对象,属性有姓名、年龄、身高、体重...,行......
  • 面向对象思想的概述和面向对象思想的举例
    面向对象思想的概述 面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个......
  • vue中改变数组对象属性名名称
    letnape=[];for(leti=0;i<list.length;i++){letres=JSON.parse(JSON.stringify(list[i])......
  • 在实例化对象的时候new关键字具体做了哪些操作?
    a创建了一个空对象{}b通过原型链把空对象和构造函数连接起来__proto__=prototypec构造函数的this指向新对象,并执行函数体d判断构造函数的返回值,返回对象就使用该......
  • js快捷抽取数组对象中某一属性值的集合
    一、Array.from方法array.from方法就是将一个类数组对象(具有length属性的对象)或者可遍历的对象转换成真正的数组varuser=[{id:1,name:"李四......
  • List<? extends T>与List<? super T>的区别
    往期热门文章:1、SpringBatch批处理,骚气还强大!2、CTO强烈禁止使用Calendar,那用啥?3、我,40岁码农,还在荷兰写低级代码,不敢回国…4、我的mybatis-plus用法,被全公司同事开......
  • spring5 入门第一课,创建对象 01
    1.项目结构 2.步骤2.1创建Userpackagecom.cj.spring5;publicclassUser{publicvoidadd(){System.out.println("add...");}}2.2创建......
  • 面向对象——封装
    封装该露的露,该藏的藏我们程序设计要追求”高内聚,低耦合“。高内聚就是类的内部数据细节由自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。封装(数据的隐......
  • [js] uncaught exception: Error: listDatabases failed
    当mongo搭建的是replicaset集群。如果你登录某一台SECONDARY节点执行命令showdbs报错2022-08-16T15:20:00.606+0800EQUERY[js]uncaughtexception:Error:list......