比较两个集合
来源:互联网 发布:手机恶意软件排行 编辑:程序博客网 时间:2024/04/30 14:42
package com.ad.web.servlet.common;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
/**
* 得到两个集合中不同的部分
* @author zxkj
*
*/
public class CollectionUtil
{
/**
* 不允许实例化
*/
private CollectionUtil() {
}
/**
* 获取两个集合的不同元素
* @param collmax
* @param collmin
* @return
*/
@SuppressWarnings("unchecked")
public static Collection getDiffent(Collection collmax,Collection collmin)
{
//使用LinkeList防止差异过大时,元素拷贝
Collection csReturn = new LinkedList();
Collection max = collmax;
Collection min = collmin;
//先比较大小,这样会减少后续map的if判断次数
if(collmax.size()<collmin.size())
{
max = collmin;
min = collmax;
}
//直接指定大小,防止再散列
Map<Object,Integer> map = new HashMap<Object,Integer>(max.size());
for (Object object : max) {
map.put(object, 1);
}
for (Object object : min) {
if(map.get(object)==null)
{
csReturn.add(object);
}else{
map.put(object, 2);
}
}
for (Map.Entry<Object, Integer> entry : map.entrySet()) {
if(entry.getValue()==1)
{
csReturn.add(entry.getKey());
}
}
return csReturn;
}
/**
* 获取两个集合的相同元素
* @param collmax
* @param collmin
* @return
*/
@SuppressWarnings("unchecked")
public static Collection getSame(Collection collmax,Collection collmin)
{
//使用LinkeList防止差异过大时,元素拷贝
Collection csReturn = new LinkedList();
Collection max = collmax;
Collection min = collmin;
//先比较大小,这样会减少后续map的if判断次数
if(collmax.size()<collmin.size())
{
max = collmin;
min = collmax;
}
//直接指定大小,防止再散列
Map<Object,Integer> map = new HashMap<Object,Integer>(max.size());
for (Object object : max) {
map.put(object, 1);
}
for (Object object : min) {
if(map.get(object)!=null)
{
csReturn.add(object);
}
}
return csReturn;
}
}
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
/**
* 得到两个集合中不同的部分
* @author zxkj
*
*/
public class CollectionUtil
{
/**
* 不允许实例化
*/
private CollectionUtil() {
}
/**
* 获取两个集合的不同元素
* @param collmax
* @param collmin
* @return
*/
@SuppressWarnings("unchecked")
public static Collection getDiffent(Collection collmax,Collection collmin)
{
//使用LinkeList防止差异过大时,元素拷贝
Collection csReturn = new LinkedList();
Collection max = collmax;
Collection min = collmin;
//先比较大小,这样会减少后续map的if判断次数
if(collmax.size()<collmin.size())
{
max = collmin;
min = collmax;
}
//直接指定大小,防止再散列
Map<Object,Integer> map = new HashMap<Object,Integer>(max.size());
for (Object object : max) {
map.put(object, 1);
}
for (Object object : min) {
if(map.get(object)==null)
{
csReturn.add(object);
}else{
map.put(object, 2);
}
}
for (Map.Entry<Object, Integer> entry : map.entrySet()) {
if(entry.getValue()==1)
{
csReturn.add(entry.getKey());
}
}
return csReturn;
}
/**
* 获取两个集合的相同元素
* @param collmax
* @param collmin
* @return
*/
@SuppressWarnings("unchecked")
public static Collection getSame(Collection collmax,Collection collmin)
{
//使用LinkeList防止差异过大时,元素拷贝
Collection csReturn = new LinkedList();
Collection max = collmax;
Collection min = collmin;
//先比较大小,这样会减少后续map的if判断次数
if(collmax.size()<collmin.size())
{
max = collmin;
min = collmax;
}
//直接指定大小,防止再散列
Map<Object,Integer> map = new HashMap<Object,Integer>(max.size());
for (Object object : max) {
map.put(object, 1);
}
for (Object object : min) {
if(map.get(object)!=null)
{
csReturn.add(object);
}
}
return csReturn;
}
}
- 比较两个集合
- 两个集合如何比较
- 比较两个有序集合
- 比较两个集合中的交集元素
- C#两个复杂对象集合的比较
- 求两个集合交集的方法比较
- 关于两个集合进行比较,更新
- 如何比较两个集合是否相等
- 怎样比较两个集合是否相等
- 面试题:比较两个集合是否相等?
- 比较两个list集合是否相等
- 一道面试题:比较两个集合是否相等?
- 一道面试题:怎么比较两个集合是否相等
- 一道面试题:怎么比较两个集合是否相等?
- 比较两个西文单词的集合的大小(数据结构)
- 用java比较两个集合对象中不一样的元素。
- 一道面试题:怎么比较两个集合是否相等?(转)
- 比较两个list集合的值是否相等
- 为什么一个java源文件中只能有一个public类
- 深入了解php底层机制
- 网络编程概述
- STL实用入门教程(1)----学习
- 钩子函数---回调函数
- 比较两个集合
- redflag Dc5.0,Asianux2安装时无法创建文件系统,缺少scsi驱动解决办法
- Android实现网络多线程断点续传下载
- c++学习旅程
- Codeforces Round #184 (Div. 2)
- D_db2_deinstall. 卸载db2
- php代码执行文件重命名函数的权限以及参数
- 如何用c++/c在控制台绘制坐标
- 由开锁智力题得出一种求平方数的方法