/**
*  这是目前我了解到速度最快的一种
*/
@SuppressWarnings("unchecked")
public static List<String> listrem(List<String> listA,List<String> listB){
HashSet hs1 = new HashSet(listA);
HashSet hs2 = new HashSet(listB);
hs1.removeAll(hs2);
List<String> listC = new ArrayList<String>();
listC.addAll(hs1);
return listC;
}

/**
* 从listA里删除listB里有的数据
* @param listA
* @param listB
* @return
*/
public static List<String> listrem(List<String> listA,List<String> listB){
for (Iterator<String> itA = listA.iterator(); itA.hasNext();)
{
String temp = itA.next();
// itA.next() 只能在外层循环里面调用1次
for (int i = 0; i < listB.size(); i++)
{
if (temp.equals(listB.get(i)))
// 你不该在这里多次调用itA.next()的
{
itA.remove();
}
}
}
return listA;
}
/**
* 获取listA单方面的相同和不同
* @param listA 源数据
* @param listB 对比值
* @param listC 相同的
* @param listD 不同的
* @return list<String>
*/
public static List<String> getDifferListByMap(List<String> listA,List<String> listB){
List<String> listC = new ArrayList<String>();
List<String> listD = new ArrayList<String>();
Map<String,Integer> map = new HashMap<String,Integer>();
for(String strA:listA){
map.put(strA.replace(" ", ""), 1);
}
for(String strB:listB){
Integer value = map.get(strB.replace(" ", ""));
if(value != null){
listC.add(strB);
continue;
}else{
listD.add(strB);
continue;
}
}
return listD;
}

JAVA 从一个List里删除包含另一个List的数据的更多相关文章

  1. 在SQLSERVER中如何检测一个字符串中是否包含另一个字符串

    --当charindex返回值大于0时则包含 为0不包含 select CHARINDEX('456','123456')   SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字 ...

  2. 验证码输入自动聚焦下一个input或者删除自动聚焦上一个input

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 在sql server中如何检测一个字符串中是否包含另一个字符串

    select CHARINDEX('456','123456')   SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字符串中的方法: 一.CHARINDEX函数介绍 1.函数功 ...

  4. 用JAVA写查询一个字符串中是否包含另外一个字符串以及出现的次数

    package JAVA; import java.awt.List;import java.util.ArrayList;/** *  * @author 梁小鱼 * */public class ...

  5. js判断一个dom中是否包含另一个dom的方法

    首先,比较原始(蠢)的方法 function isChildOf(child, parent) { if(child && parent) { let parentNode = chi ...

  6. sed打印包含一个字符串的行到包含另一个字符串的行解答

    sed -n '/字符串1/,/字符串2/p' filename  这个命令为什么有时候打印不出来想要的东西,例如:sed -n '/root/,/adm/p'  /etc/passwd      我 ...

  7. 判断一个字符串中是否包含另一个字符串(KMP、BF)

    判断一个字符串是否是另一个字符串的子串,也就是strstr()函数的实现,简单的实现方法是BF算法. 1.BF算法 int BF(char *s, char *p){ ; ; int j; while ...

  8. c# 判断一个string[]是否全包含另一个string[]

    // list = normalList.Except(repairList).ToList(); //差集 // list = normalList.Union(repairList).ToList ...

  9. 传多个id 存入一个容器里,让另一个页面接受并显示数据

    要传页面的id: <ul class="contrast-ul"> <!-- <li>id都在这里面</li> --> </u ...

随机推荐

  1. TCP网络通讯如何解决分包粘包问题(有模拟代码)

    TCP作为常用的网络传输协议,数据流解析是网络应用开发人员永远绕不开的一个问题. TCP数据传输是以无边界的数据流传输形式,所谓无边界是指数据发送端发送的字节数,在数据接收端接受时并不一定等于发送的字 ...

  2. WPF中的 Layout To Layout

    原文:WPF中的 Layout To Layout   WPF中的 Layout To Layout                             周银辉 WPF的布局功能异常强大,当有时我 ...

  3. 在Keystone V3基础上改进的分布式认证体系

    目标 使用java实现keystone v3相关功能与概念: api client authentication service discovery distributed multi-tenant ...

  4. LeapMotion Demo3

    原文:LeapMotion Demo3   从Github及其他论坛下载一些LeapMotion的例子,部分例子由于SDK的更新有一些小Bug, 已修复,感兴趣的可以下载:       http:// ...

  5. 最简单的IdentityServer实现——IdentityServer

    1.新建项目 新建ASP .Net Core项目IdentityServer.EasyDemo.IdentityServer,选择.net core 2.0   1   2 引用IdentitySer ...

  6. 关于在.Net开发中使用Sqlite的版本选择问题

    原文:关于在.Net开发中使用Sqlite的版本选择问题 如果一个.NET应用要自适应32位/64位系统,只需要在项目的“目标平台”设置为“Any CPU”.但是如果应用中使用了SQLite,情况就不 ...

  7. Delphi多线程下的ADO编程

    前言: 几个月前接到一个任务:将一后台程序访问数据库的方式从BDE改为ADO,原因是由于业务量的增加,通过BDE不论是向数据库写入数据还是从数据库中读出数据的速度都变得无法忍受,大家都知道ADO在数据 ...

  8. jvm常用参数设置 专题

    在jdk8中 -Xms2g不合法,能通过的:-Xms2G #!/bin/bash JAVA_OPTS="-Xms4G -Xmx4G -XX:+HeapDumpOnOutOfMemoryErr ...

  9. .net core api 跨域

    什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制. 所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子: h ...

  10. Win8Metro(C#)数字图像处理--2.7图像伪彩色

    原文:Win8Metro(C#)数字图像处理--2.7图像伪彩色  2.7图像伪彩色函数 [函数名称] 图像伪彩色函数PseudoColorProcess(WriteableBitmap src) ...