List A和B

A.removeAll(B);
A.addAll(B);

例如有如下实体类:


/**
* hashset是如何保持元素的唯一性呢?
* 是通过元素的hashcode和equals来表示:
* 如果hashCode值一样,则比较equals是否为true
* 如果hashCode值不一样,不用比较equals
*/
/**
* List是如何集合中元素相同的呢?
* 是通过元素的hashcode和equals来表示:
* 如果hashCode值一样,则比较equals是否为true
* 如果hashCode值不一样,不用比较equals
*/
public class UserTable {
private String linkdoodid; private String linkdoodname;   public UserTable() {
super();
}
  public UserTable(String linkdoodid,String linkdoodname){
    supert();
    this.linkdoodid=linkdoodid;
    this.linkdoodname=linkdoodname;
  } public String getLinkdoodid() {
return linkdoodid;
} public void setLinkdoodid(String linkdoodid) {
this.linkdoodid = linkdoodid == null ? null : linkdoodid.trim();
} public String getLinkdoodname() {
return linkdoodname;
} public void setLinkdoodname(String linkdoodname) {
this.linkdoodname = linkdoodname == null ? null : linkdoodname.trim();
} @Override
public boolean equals(Object obj) {
if (!(obj instanceof UserTable)) {
return false;
}
UserTable userTable = (UserTable) obj;
return this.linkdoodid.equals(userTable.linkdoodid);
} @Override
public int hashCode() {
return linkdoodid.hashCode();
}
}

测试:

public class HashSetTest {
public static void main(String[] args) {
    //List
    List<UserTable> listA=new ArrayList<UserTable>();
    listA.add(new UserTable("A1001","LJ"));
    listB.add(new UserTable("B1002","MH"));     List<UserTable> listB=new ArrayList<UserTable>();
    listB.add(new UserTable("B1002","SM"));
    listB.add(new UserTable("C1001","TM"));
    
    listA.removeAll(listB);//由于UserTable的hashCode和equal 都是以linkdoodid 来判断,所以“B1002”算重复元素    
    listA.addAll(listB);     //HashSet
   HashSet<UserTable> hs = new HashSet<UserTable>();
   hs.add(new UserTable("a1", 20));
   hs.add(new UserTable("a2", 30));
   hs.add(new UserTable("a3", 40));
   hs.add(new UserTable("a3", 40));
   Iterator<Person> iterator = hs.iterator();
   while(iterator.hasNext()){
   Person p = iterator.next();
   System.out.println(p.getName()+" "+p.getAge());
  }
}
}

Java List合并去重的更多相关文章

  1. JAVA List<> 合并去重

    List<A>和List<B>,A/B中均没有重复的,现在保证A/B合并为C,且C中没有重复的. 参考http://blog.csdn.net/secondjanuary/ar ...

  2. PHP数组合并+与array_merge的区别分析 & 对多个数组合并去重技巧

    PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的! 主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意 ...

  3. java poi 合并单元格

    java poi 合并单元格 2017年03月29日 16:39:01 翠烟你懊恼 阅读数:26561   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...

  4. 两个List合并去重

    今天遇到一个合并去重问题,从网上搜索一样总结出来两个比较简单的方法,这里去重是只能取出地址相同的数据,例如:如果两个字符串的值相同但都是单独new出来的这样去不了 @Test public void ...

  5. Java数组合并方法学习。

    参考博客: https://blog.csdn.net/liu_005/article/details/72760392 https://blog.csdn.net/jaycee110905/arti ...

  6. linux shell文件合并 去重 分割

    1,合并+去重+分割 转载:shell 文件合并,去重,分割 - kakaisgood - 博客园 (cnblogs.com) 第一:两个文件的交集,并集前提条件:每个文件中不得有重复行1. 取出两个 ...

  7. java实现合并两个已经排序的列表

    相对于C++来说,Java的最大特点之一就是没有令人困惑的指针,但是我们不可否认,在某些特定的情境下,指针确实算的上一把利刃.虽然Java中没有明确定义出指针,但是由于类的思想,我们可以使用class ...

  8. Java文件合并

    文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位, ...

  9. Java+XSL合并多个XML文件

    使用 Java 解析 XML 文件有许多成熟的工具,如 dom4j 等等.但在一些场景中,我们可能使用 Ant.Maven 等构建工具对多个 XML 文件进行合并,我们希望可以直接通过脚本文件,或者简 ...

随机推荐

  1. EBS learning history (to know about the environment)

    prcsgidb1: /u01/Stage/database C:\Users\alley_li>ping prcsgidb1 Pinging prcsgidb1.ad.infosys.com ...

  2. HDU 2732:Leapin' Lizards(最大流)

    http://acm.hdu.edu.cn/showproblem.php?pid=2732 题意:给出两个地图,蜥蜴从一个柱子跳跃到另外一个地方,那么这个柱子就可能会坍塌,第一个地图是柱子可以容忍跳 ...

  3. InnoDB事务隔离级别

    转载于:http://blog.csdn.net/wudongxu/article/details/8623610 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的 ...

  4. 开发客户端软件时,出现System.Windows.Markup.XamlParseException错误

    开发客户端软件时,出现System.Windows.Markup.XamlParseException错误,通过查看错误消息,发现TCPIP的一个COM组件在安装软件过程中被删除了,重新注册了一下TC ...

  5. GCD一些常用的方法

        //1.创建主线程(串行)     dispatch_async(dispatch_get_main_queue(), ^{         //刷新界面代码     });     //2. ...

  6. C# 正则表达式小坑 -- not enough

    今天遇到了一个奇怪的报错: 相关的代码是这样的: Regex regex = new Regex("(?<=wwwroot\\).*?$"); 然后把这段正则复制到任何正则测 ...

  7. 【前端】原生event对象和jquery event对象的区别

    标准DOM event对象转换成 jQuery event对象 $(event) jQuery event对象转换成 标准DOM event对象 event.originalEvent

  8. js 单例模式笔记

    单例指一个类只有一个实例,这个类自行创建这个实例. 利用对象字面量直接生成一个单例: var singleton = { prop: 1, method: function(){ console.lo ...

  9. string黑科技

    1. string对象的定义和初始化以及读写 string s1; 默认构造函数,s1为空串string s2(s1); 将s2初始化为s1的一个副本string s3("valuee&qu ...

  10. js创建节点及其属性

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...