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. OpenCart中文乱码解决方法

      遇到在列表页面调用部分截取中文内容的时候,被截取的内容有乱码,改数据库的编码没用,后来发现:utf8_substr(strip_tags(html_entity_decode($result['d ...

  2. SQL Server 在task manager里面显示CPU 使用率过高

    发现一篇好文章 https://mssqlwiki.com/2012/10/04/troubleshooting-sql-server-high-cpu-usage/

  3. 刚知道的android属性

    在EditText中当设置的高度是wrap_parent,但是随着我们输入的越来越多,编辑框会被拉伸的很丑,所以就用了maxLines属性,设置maxLines="2"说明最多输入 ...

  4. placeholder修改字体和颜色

    textField.placeholder = @"username is in here!"; [textField setValue:[UIColor redColor] fo ...

  5. webapi aspose导出excel表格

    API 通过get请求,注意用到一个[FromUri]特性,使GET接收实体参数 /// <summary> /// 导出 /// </summary> /// <par ...

  6. Java SE 基础:注释

    Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...

  7. ABAP代码编辑器设置--界线

    ABAP编辑器每行允许的最大字符数: Utilities->Settings打开选项卡: 勾选:Downward-Compat.line Length(72) 设置后看到的效果: 设置步骤:

  8. javascript 组合

    1. 大数组中有m个元素,抽取其中的n个进行组合. var combination = function(arr, num){ var r=[]; (function f(t,a,n) { ) { r ...

  9. 广播Broadcast Receiver

    广播的类型: 1.标准广播(Normal broadcat) 完全异步执行的广播,所有广播接收器同一时间接收广播消息. 效率高,但无法被截断. 2.有序广播 同步执行的广播,同一时刻只能有一个广播接收 ...

  10. Query Designer:Condition,根据KeyFigure值来过滤数据

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...