Java 查找两个有复杂对象的集合中的不同元素和相同的元素
2016-08-08 22:29
357 查看
1、定义一个测试对象RolePerm
2、提取两个集合中的不同元素和相同的元素
备注:这是稍微复杂的集合,简单的集合没有这么复杂
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; }
备注:这是稍微复杂的集合,简单的集合没有这么复杂
相关文章推荐
- 找出list中的不同元素、删除两个list中相同的对象
- Java相同类型的两个对象比较属性值,得到不同属性的名称和对应的值,附代码实例
- java中如何高效判断两个容器是否有相同元素(时间复杂度为O(1))
- 从“比较两个含有多个不同元素的集合是否相同”引申出的几种算法
- python求两个列表的的不同元素集合和相同元素的集合
- java两个list中保存bean对象,找出其中某一属性不同的元素
- Java比较两个对象是否相同并获得不同的字段
- 取得两个集合中不同元素(去除两个集合中的相同元素)
- Java - 两个对象值相同(x.equals(y) == true),但却可以有不同的hash code,这句话对不对?
- java找出2个集合相同和不同的元素(以及去除List中的重复元素)
- MATLAB中查找两个不同维度的矩阵中相同或者不同元素的位置
- java里如何实现两个等长度的字符串数组有多少个元素相同(从最左边开始,一旦遇到不同元素则跳出计数)
- 比较两个List元素是否相同,查找出两个list的不同元素
- java两个list中保存bean对象,找出其中某一属性不同的元素
- JAVA两个数组间元素的比较(找出相同或者不同元素)
- java Android 判断两个集合是否包含不同元素
- java找出2个集合或数组相同和不同的元素(以及去除List中的重复元素)
- 用java比较两个集合对象中不一样的元素。
- Java提取2个集合中的相同和不同元素代码示例
- JAVA中如何取出两个不同List对象(对象一致)中所有不同的对象的集合