Java 中的 Set 集合中不能储存重复元素,故经常用来进行去重操作,但是在实际操作中,我们发现 Set 集合并不能判断对象是否重复,故无法对对象直接进行去重;不过我们可以通过将对象转换成 String 存入 Set 中进行去重操作后再取出转回对象,以此达到去重的目的。

一. 引入依赖

        <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.41</version></dependency>

二. 直接放入 Set 中

1. 新建 UserTest 类

也可以直接用Object类取

package com.example.demo.bean;public class UserTest {private String userName;private String interest;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getInterest() {return interest;}public void setInterest(String interest) {this.interest = interest;}@Overridepublic String toString() {return "UserTest{" +"userName='" + userName + '\'' +", interest='" + interest + '\'' +'}';}
}

2. 新建 TestControl 类

@RequestMapping(value = "/get", method = RequestMethod.GET)public JSONObject getObj() {JSONObject output = new JSONObject();Set<UserTest> set = server.getObj();output.put("msg", "success");output.put("data", set);return output;}

3. 新建 TestServe 类

public Set<UserTest> getObj() {List<UserTest> list = testImpl.getObj();Set<UserTest> set = new HashSet<>(list);return set;}

4. 新建  TestImpl 类

public List<UserTest> getObj() {return template.findAll(UserTest.class, "test2");}

5. 测试结果

可以看到,结果中存在完全相同的两项。

三. 将对象转化后再去重

只需要将 TestServe 类中的代码稍做修改

 public List<UserTest> getObj() {List<UserTest> list = testImpl.getObj();
//        Set<UserTest> set = new HashSet<>(list);Set<String> set = new HashSet<>();for (UserTest userTest: list) {set.add(JSONObject.toJSONString(userTest));}List<UserTest> result = new ArrayList<>();for (String s: set) {JSONObject jsonObject = JSON.parseObject(s);UserTest userTest = JSONObject.toJavaObject(jsonObject, UserTest.class);result.add(userTest);}return result;}

再测试一下

可以看到,已经没有重复数据了。

JAVA 去除重复对象方法相关推荐

  1. java去除重复对象_Java19-2 集合类去除重复对象

    List独有方法: import java.util.ArrayList; import java.util.List; public class ListTest2 { public static ...

  2. java list 重复对象_list集合去除重复对象的实现

    对象重复是指对象里面的变量的值都相等,并不定是地址.list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去除. 当set集合存储的是对象类型时,需要在对象的实体类里面 ...

  3. php自动合并,php实现合并数组并去除重复的方法

    php实现合并数组并去除重复的方法 发布时间:2020-08-12 10:35:05 来源:亿速云 阅读:99 作者:小新 这篇文章主要介绍了php实现合并数组并去除重复的方法,具有一定借鉴价值,需要 ...

  4. Excel表中查找、去除重复项方法合集

    第一种,主选项卡开始->条件格式->突出显示单元格规则->重复值. 第二种,主选项卡下,高级筛选,也可以去除重复项,但是这个时候的重复项就是完全重复的才会去除. 第三种,可以在需要做 ...

  5. list集合去除重复对象

       对象重复是指对象里面的变量的值都相等,并不定是地址.list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去除. 当set集合存储的是对象类型时,需要在对象的实体 ...

  6. Java 去除重复数据的五种方式

    1.使用LinkedHashSet删除arraylist中的重复数据 LinkedHashSet是在一个ArrayList删除重复数据的最佳方法.LinkedHashSet在内部完成两件事: 删除重复 ...

  7. java为何重复调用方法_通过反射调用Java中的getter:重复调用它的最快方法是什么(在性能和可伸缩性方面)?...

    小编典典 您可以使用MethodHandle.其Javadoc写道: 使用Lookup API中的工厂方法,可以将Core Reflection API对象表示的任何类成员转换为行为等效的方法句柄.例 ...

  8. java window的对象方法,[Java教程]如何真正重写window对象的方法_星空网

    如何真正重写window对象的方法 2014-12-29 0 重写window对象的方法不是一件新奇的事,比如我们可能需要改变默认alert的行为,如何安全的重写呢? 小菜看到某知名IT网站是这样的写 ...

  9. java window的对象方法_Javascript:window对象的方法

    Homepage URL http://flysky-1.at.vwdhosting.net FTP server name: ftp://flysky-1@ftp6.vwdhosting.net L ...

最新文章

  1. [译]Kinect for Windows SDK开发入门(九):骨骼追踪进阶 下
  2. 如何有条件地向React组件添加属性?
  3. JavaScript事件对象
  4. s6-1 传输层概述
  5. POJ - 3842 An Industrial Spy dfs(水)
  6. RabbitMQ学习之基于spring-rabbitmq的RPC远程调用
  7. iPhone 11专用“浴霸”镜头保护膜曝光:史无前例
  8. 杨格门锁 YGSLockSDK V3.3酒管软件接口_99v
  9. 利用JAVA Service Wrapper把JAVA程序做成windows服务
  10. 常见并发工具的使用和原理解析——Condition(重点在第五节)
  11. gephi java教程_gephi生成图(java版)
  12. win10 Security Center服务无法禁用,启动类型灰色不可改解决方法
  13. Eclipse+Java+Swing实现企业人事管理系统
  14. bin文件夹和lib文件夹
  15. [unity]调用手机摄像头
  16. C/C++知识总结 四 循环与分支语句
  17. Cocos精品《地下城堡2》:从挂机到RPG 唯有暗黑始终如一
  18. 随笔——网易云的神评论(持续更新)
  19. MCSD培训教程70-016 Microsoft Visual C++ 6.0 桌面应用程序开发
  20. 网页视频加速方法(不能改进度)

热门文章

  1. Java中resualtset,Java SafeEncoder類代碼示例
  2. latex设置页面边距,页面大小,页边距,geometry宏包
  3. vue+spring boot项目实现PC端微信登录
  4. kafka reassign 限速_简单明了,Kafka与MQ的区别
  5. 快速分析出京东快递大量单号物流是否延误
  6. 第一单元 用python学习微积分(五) 隐函数微分法和逆函数导数(下)- 反函数
  7. android 修改已建工程的api版本,更改API级Android Studio
  8. 让计算机网络与作文教学,“基于计算机和网络环境下的写作教学研究”课题组  2015-2016学年度上学期研究计划...
  9. STM32CubeIDE的一点使用技巧
  10. GAN学习历程之CycleGAN论文笔记