Looly 5 年之前
父节点
当前提交
76a47b3c54

+ 33 - 0
hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java

@@ -327,6 +327,39 @@ public class CollUtil {
 	}
 
 	/**
+	 * 计算集合的单差集,即只返回【集合1】中有,但是【集合2】中没有的元素,例如:
+	 *
+	 * <pre>
+	 *     subtractToList([1,2,3,4],[2,3,4,5]) -》 [1]
+	 * </pre>
+	 *
+	 * @param coll1 集合1
+	 * @param coll2 集合2
+	 * @param <T>   元素类型
+	 * @return 单差集
+	 * @since 5.3.5
+	 */
+	public static <T> List<T> subtractToList(Collection<T> coll1, Collection<T> coll2) {
+
+		if (isEmpty(coll1)) {
+			return ListUtil.empty();
+		}
+		if (isEmpty(coll2)) {
+			return ListUtil.list(true, coll2);
+		}
+
+		//将被交数用链表储存,防止因为频繁扩容影响性能
+		final List<T> result = new LinkedList<>();
+		Set<T> set = new HashSet<>(coll2);
+		for (T t : coll1) {
+			if (false == set.contains(t)) {
+				result.add(t);
+			}
+		}
+		return result;
+	}
+
+	/**
 	 * 判断指定集合是否包含指定值,如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true}
 	 *
 	 * @param collection 集合

+ 2 - 0
hutool-http/src/main/java/cn/hutool/http/server/action/RootAction.java

@@ -54,6 +54,8 @@ public class RootAction implements Action {
 						response.write(file);
 					}
 				}
+			} else{
+				response.write(file);
 			}
 		}