From 0be9abc71f4a82a284231808af5e9eaea654d352 Mon Sep 17 00:00:00 2001 From: emptypoint Date: Sat, 30 Apr 2022 20:18:08 +0800 Subject: [PATCH] =?UTF-8?q?CollectionUtils=E4=B8=80=E4=BA=9B=E6=97=A0?= =?UTF-8?q?=E5=85=B3=E7=B4=A7=E8=A6=81=E7=9A=84=E5=B0=8F=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mayfly/core/util/CollectionUtils.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/mayfly-core/src/main/java/mayfly/core/util/CollectionUtils.java b/mayfly-core/src/main/java/mayfly/core/util/CollectionUtils.java index 0f93e87..6a1957d 100644 --- a/mayfly-core/src/main/java/mayfly/core/util/CollectionUtils.java +++ b/mayfly-core/src/main/java/mayfly/core/util/CollectionUtils.java @@ -51,8 +51,8 @@ public class CollectionUtils { /** * 创建arraylist * - * @param ele 元素 - * @param 元素类型 + * @param ele 元素 + * @param 元素类型 * @return ArrayList */ @SafeVarargs @@ -84,15 +84,15 @@ public class CollectionUtils { } /** - * 根据 元素自带的比较器 比较两个collection中哪些是新增的对象以及删除的对象和没有改变的对象 + * 根据 集合元素的 {@link Object#equals(Object)} ()} 和 {@link Object#hashCode()} + * 比较两个collection中哪些是新增的对象以及删除的对象和没有改变的对象 * * @param newCollection 新集合 * @param oldCollection 旧集合 - * @param 集合元素泛型对象, 该类型必须实现Comparable接口 + * @param 集合元素泛型对象 * @return 比较结果 {@link CompareResult} */ - public static > - CompareResult compare(Collection newCollection, Collection oldCollection) { + public static CompareResult compare(Collection newCollection, Collection oldCollection) { Set newSet = isEmpty(newCollection) ? emptySet() : newCollection instanceof Set ? (Set) newCollection : new HashSet<>(newCollection); @@ -137,8 +137,11 @@ public class CollectionUtils { * @param 集合元素泛型对象 * @return 比较结果 {@link CompareResult} */ - public static - CompareResult compare(Collection newCollection, Collection oldCollection, Comparator comparator) { + public static CompareResult compare( + Collection newCollection, + Collection oldCollection, + Comparator comparator + ) { List newList = isEmpty(newCollection) ? emptyList() : newCollection instanceof List ? (List) newCollection : new ArrayList<>(newCollection); @@ -173,9 +176,10 @@ public class CollectionUtils { // 根据比较器排序 newList.sort(comparator); oldList.sort(comparator); + + unmodifiedSet = new HashSet<>(oldSize); addSet = new HashSet<>(newSize); deleteSet = new HashSet<>(); - unmodifiedSet = new HashSet<>(oldSize); // 遍历两个列表长度相等的部分 while (newIdx < newSize && oldIdx < oldSize) { final T newOne = newList.get(newIdx); -- Gitee