Java 查找两个有复杂对象的集合中的不同元素和相同的元素
来源:互联网 发布:网络爱国青年叫什么 编辑:程序博客网 时间:2024/06/05 23:00
1、定义一个测试对象RolePerm
public class RolePerm{ private Long rid; private Long pid; public void setRid(Long rid){ this.rid=rid; } public Long getRid(){ return rid; } public void setPid(Long pid){ this.pid=pid; } public Long getPid(){ return pid; } /** *重写hashCode,方便集合的操作 */ @Override public int hashCode() { return (int) (this.pid+this.rid); } /** *重写equals,只有pid和rid都相等,才认为这个对象是想等的 */ @Override public boolean equals(Object obj) { if(!(obj instanceof RolePerm)){ return false; } RolePermrp = (RolePerm) obj; return (this.pid == rp.pid) && (this.rid == rp.rid); }}
2、提取两个集合中的不同元素和相同的元素
/** * 获取两个集合不同 * @param rps1 rps1数据 * @param rps2 rps2数据 * @return 0:rps1中独有的数据;1:交集的数据;2:rps2中的独有数据 */private Map<Integer, List<RolePerm>> findListDiff(List<RolePerm> rps1,List<RolePerm> rps2){ //判断不能为空 if(rps1 == null || rps1.isEmpty() || rps2 == null || rps1.isEmpty()) return null; //保存最后的数据 Map<Integer, List<RolePerm>> mapList = new HashMap<Integer, List<RolePerm>>(3); //复制rps1,作为备份 List<RolePerm> rps1_bak = new ArrayList<RolePerm>(rps1); //1、获取rps1中与rps2中不同的元素 rps1.removeAll(rps2); //2、获取rps1和rps2中相同的元素 rps1_bak.removeAll(rps1); //3、获取rps2中与rps1中不同的元素 rps2.removeAll(rps1_bak); //经过此转换后rps1中数据与rps2中的数据完全不同 //rps1_bak是rps1和rps2的交集 //rps2中的数据与rps1中的数据完全不同 mapList.put(0, rps1);//rps1中独有的数据 mapList.put(1, rps1_bak);//交集的数据 mapList.put(2, rps2);//rps2中的独有数据 return mapList;}
备注:这是稍微复杂的集合,简单的集合没有这么复杂
1 0
- Java 查找两个有复杂对象的集合中的不同元素和相同的元素
- java找出2个集合相同和不同的元素(以及去除List中的重复元素)
- java找出2个集合相同和不同的元素(以及去除List中的重复元素)
- java找出2个集合相同和不同的元素(以及去除List中的重复元素)
- 比较两个List元素是否相同,查找出两个list的不同元素
- 找出list中的不同元素、删除两个list中相同的对象
- 取得两个集合中不同元素(去除两个集合中的相同元素)
- MATLAB中查找两个不同维度的矩阵中相同或者不同元素的位置
- 去除两个集合中相同的元素,并得到两个集合中非相同元素的集合
- PHP分割两个数组的相同元素和不同元素的两种方法
- JAVA两个数组间元素的比较(找出相同或者不同元素)
- JAVA两个数组间元素的比较(找出相同或者不同元素)
- java怎么判断两个Set 里的对象的值是否相同【两个set中的值是否相等】、java treeset和hashset如何判断元素是否相同【即对象是否完全相同;利用一个set去除重复元素】
- 快速找出List集合的相同与不同元素集合
- 查找集合中两个最大的元素
- 取两个集合中的相同元素
- JAVA中区分2个集合中的相同和不同元素
- java找出两个字符串相同的元素
- Arrays常用的方法(一部分)
- hdu 2199 Can you solve this equation?
- CSS设置图片的重复
- 前端面试题 - 如何居中一个float:left的元素
- iOS Swift 基础二
- Java 查找两个有复杂对象的集合中的不同元素和相同的元素
- Python学习记录1
- Shader特效——实现“HDR”效果【GLSL】
- 【Linux系统编程】进程间通信概述
- 一张图带你搞明白Dex文件格式
- unix环境高级编程-输入和输出
- Motivation:Tessellation Shaders
- 手写快速排序——sort
- android listview入门