JAVA 从一个List里删除包含另一个List的数据
/**
* 这是目前我了解到速度最快的一种
*/
@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的数据的更多相关文章
- 在SQLSERVER中如何检测一个字符串中是否包含另一个字符串
--当charindex返回值大于0时则包含 为0不包含 select CHARINDEX('456','123456') SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字 ...
- 验证码输入自动聚焦下一个input或者删除自动聚焦上一个input
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 在sql server中如何检测一个字符串中是否包含另一个字符串
select CHARINDEX('456','123456') SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字符串中的方法: 一.CHARINDEX函数介绍 1.函数功 ...
- 用JAVA写查询一个字符串中是否包含另外一个字符串以及出现的次数
package JAVA; import java.awt.List;import java.util.ArrayList;/** * * @author 梁小鱼 * */public class ...
- js判断一个dom中是否包含另一个dom的方法
首先,比较原始(蠢)的方法 function isChildOf(child, parent) { if(child && parent) { let parentNode = chi ...
- sed打印包含一个字符串的行到包含另一个字符串的行解答
sed -n '/字符串1/,/字符串2/p' filename 这个命令为什么有时候打印不出来想要的东西,例如:sed -n '/root/,/adm/p' /etc/passwd 我 ...
- 判断一个字符串中是否包含另一个字符串(KMP、BF)
判断一个字符串是否是另一个字符串的子串,也就是strstr()函数的实现,简单的实现方法是BF算法. 1.BF算法 int BF(char *s, char *p){ ; ; int j; while ...
- c# 判断一个string[]是否全包含另一个string[]
// list = normalList.Except(repairList).ToList(); //差集 // list = normalList.Union(repairList).ToList ...
- 传多个id 存入一个容器里,让另一个页面接受并显示数据
要传页面的id: <ul class="contrast-ul"> <!-- <li>id都在这里面</li> --> </u ...
随机推荐
- Goutte 获取http response
$client = new Goutte\Client(); $crawler = $client->request('GET', 'http://symfony.com'); 获取http 响 ...
- AY的Dapper研究学习-基本入门-C#开发-aaronyang技术分享
原文:AY的Dapper研究学习-基本入门-C#开发-aaronyang技术分享 ====================www.ayjs.net 杨洋 wpfui.com ...
- datacontract helper
public static class DataContractHelper { public static void ToDCFile<T>(this T obj, string pat ...
- DevExpress的xtraMessageBox汉化
原文:DevExpress的xtraMessageBox汉化 项目使用的界面库是DevExpress 相当好用,不过里面弹出对话框XtraMessageBox的按钮都是英文的, 可能会对用户造成困扰, ...
- 微信小程序把玩(三十一)wx.uploadFile(object), wx.downloadFile(object) API
原文:微信小程序把玩(三十一)wx.uploadFile(object), wx.downloadFile(object) API 反正我是没有测通这两个API!!!!不知道用的方式不对还是其他的!! ...
- Oracle 裁掉北京研发团队,相应职位撤回美国(收购了NetSuite,LogFire,Dyn)
根据中国日报报道,2017年1月14日上午9点09分,甲骨文北京研发团队的同事收到了来自BU老大的一封邮件.邮件上提及,由于市场变化,甲骨文开始整合各研发中心资源公司在云计算方向发力,文末单独提出了甲 ...
- QT 强制杀死进程
bool KillProcess(QString ProcessName){ bool result = false; QString str1; HANDLE hSnapShot = Create ...
- C#每天进步一点--事件
事件:如果类型定义了事件成员,那么类型就可以通知其他对象发生了特定的事情.例如,Button类提供了一个名为Click的事件.应用程序中的一个或者多个对象可能想接收关于这个事件的通知,以便在Butto ...
- QThread多线程编程经典案例分析(三种方法,解释了为什么使用moveToThread的根本原因,即为了避免调用QThread::exec() )
传统的图形界面应用程序都只有一个线程执行,并且一次执行一个操作.如果用户调用一个比较耗时的操作,就会冻结界面响应. 一个解决方法是按照事件处理的思路: 调用 Void QApplication::pr ...
- Android消息机制架构和源码解析
http://wangkuiwu.github.io/2014/08/26/MessageQueue/