集合操作在web应用开发中也是很常见的,目前也有一些比较方便的工具如java.util.Collections、org.apache.commons.collections.CollectionUtils等,但是根据自己公司项目开发中的具体情况提取一套更何用的集合操作工具类也是很有帮助的。
1、获取在集合A而不在集合B内的元素(差集)
/**
* 获取在first集合内而不在second集合内的元素
* @param first
* @param second
* @return
*/
public static List<String> getDiffList(Collection<String> first, Collection<String> second) {
long t = System.currentTimeMillis();
Set<String> sameString = new HashSet<String>(second);
List<String> result = new ArrayList<String>(first.size());
for (String s : first) {
if (!sameString.contains(s)) {
result.add(s);
}
}
if(System.currentTimeMillis() - t > 1){
logger.debug("getDiffList with list first.size={},sencond.size={},use time={}ms",first.size(),second.size(),System.currentTimeMillis()