JAVA 从一个List里删除包含另一个List的数据
2024-10-02 03:44:56
/**
* 这是目前我了解到速度最快的一种
*/
@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;
}
最新文章
- 使用注解匹配Spring Aop切点表达式
- ASP.Net Core 里是如何把一个普通的 Action 返回类型转换为某种 IActionResult 的
- Spring 学习笔记 4. 尚硅谷_佟刚_Spring_属性配置细节
- 查看ORACLE的实际执行计划
- centos 6.4 系统代理上网 设置
- python and django
- Sprint会议-初步组织划分
- GLSL实现Simple Displace Mapping 水仿真流体绘制 【转】
- HUST 1017 Exact cover dance links
- Mongodb FAQ 存储(storage)篇
- Hibernate 多对多关联Demo
- C函数的实现(strcpy,atoi,atof,itoa,reverse)
- MSSQL - 多表查询
- [CLR via C#]1.5 本地代码生成器:NGen.exe
- HTML 5 在Web SQL 使用演示样本
- html中的空白字符问题
- Python基础_函数2
- laravel-Policy步骤
- 面试之路(6)-BAT面试之操作系统内存详解
- 优雅的使用windows