From 76ba6f08369882233d115603709c22a8a111ed8f Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 23 Aug 2022 10:27:51 +0800 Subject: [PATCH] remove class --- .../core/comparator/ComparableComparator.java | 53 ----------------- .../hutool/core/comparator/CompareUtil.java | 58 ++++++++++++++----- .../core/comparator/ReverseComparator.java | 49 ---------------- .../java/cn/hutool/core/util/ArrayUtil.java | 17 +----- .../main/java/cn/hutool/json/JSONConfig.java | 2 +- 5 files changed, 44 insertions(+), 135 deletions(-) delete mode 100644 hutool-core/src/main/java/cn/hutool/core/comparator/ComparableComparator.java delete mode 100644 hutool-core/src/main/java/cn/hutool/core/comparator/ReverseComparator.java diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/ComparableComparator.java b/hutool-core/src/main/java/cn/hutool/core/comparator/ComparableComparator.java deleted file mode 100644 index a53187890..000000000 --- a/hutool-core/src/main/java/cn/hutool/core/comparator/ComparableComparator.java +++ /dev/null @@ -1,53 +0,0 @@ -package cn.hutool.core.comparator; - -import java.io.Serializable; -import java.util.Comparator; - -/** - * 针对 {@link Comparable}对象的默认比较器 - * - * @param 比较对象类型 - * @author Looly - * @since 3.0.7 - */ -public class ComparableComparator> implements Comparator, Serializable { - private static final long serialVersionUID = 3020871676147289162L; - - /** 单例 */ - @SuppressWarnings("rawtypes") - public static final ComparableComparator INSTANCE = new ComparableComparator<>(); - - /** - * 构造 - */ - public ComparableComparator() { - } - - /** - * 比较两个{@link Comparable}对象 - * - *
-	 * obj1.compareTo(obj2)
-	 * 
- * - * @param obj1 被比较的第一个对象 - * @param obj2 the second object to compare - * @return obj1小返回负数,大返回正数,否则返回0 - * @throws NullPointerException obj1为{@code null}或者比较中抛出空指针异常 - */ - @Override - public int compare(final E obj1, final E obj2) { - return obj1.compareTo(obj2); - } - - @Override - public int hashCode() { - return "ComparableComparator".hashCode(); - } - - @Override - public boolean equals(final Object object) { - return this == object || null != object && object.getClass().equals(this.getClass()); - } - -} \ No newline at end of file diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java b/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java index 268e9b7f0..7780459a5 100644 --- a/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java @@ -1,7 +1,7 @@ package cn.hutool.core.comparator; -import java.lang.reflect.Array; -import java.util.Collection; +import cn.hutool.core.util.ArrayUtil; + import java.util.Comparator; import java.util.Objects; import java.util.function.Function; @@ -98,19 +98,50 @@ public class CompareUtil { * *
    *
  • 如需对null友好操作如下
  • - *
  • Comparator.nullsFirst(Comparator.naturalOrder())
  • - *
  • Comparator.nullsLast(Comparator.naturalOrder())
  • - *
  • Comparator.nullsLast(CompareUtil.naturalComparator())
  • - *
  • Comparator.nullsFirst(CompareUtil.naturalComparator())
  • + *
  • Comparator.nullsLast(CompareUtil.natural())
  • + *
  • Comparator.nullsFirst(CompareUtil.natural())
  • *
* * @param 排序节点类型 * @return 默认排序器 * @since 5.7.21 */ - @SuppressWarnings("unchecked") - public static > Comparator naturalComparator() { - return ComparableComparator.INSTANCE; + public static > Comparator natural() { + return Comparator.naturalOrder(); + } + + /** + * 获取反序排序器,即默认自然排序的反序排序器 + * + *
    + *
  • 如需对null友好操作如下
  • + *
  • Comparator.nullsLast(CompareUtil.naturalReverse())
  • + *
  • Comparator.nullsFirst(CompareUtil.naturalReverse())
  • + *
+ * + * @param 排序节点类型 + * @return 默认排序器 + * @since 6.0.0 + */ + public static > Comparator naturalReverse() { + return Comparator.reverseOrder(); + } + + /** + * 获取反序排序器,即默认排序器 + * + *
    + *
  • 如需对null友好操作如下
  • + *
  • Comparator.nullsLast(CompareUtil.reverse())
  • + *
  • Comparator.nullsFirst(CompareUtil.reverse())
  • + *
+ * + * @param 排序节点类型 + * @return 默认排序器 + * @since 6.0.0 + */ + public static > Comparator reverse(final Comparator comparator) { + return null == comparator ? naturalReverse() : comparator.reversed(); } /** @@ -255,7 +286,6 @@ public class CompareUtil { * @return 索引比较器 * @since 5.8.0 */ - @SuppressWarnings("unchecked") public static Comparator comparingIndexed(final Function keyExtractor, final U[] objs) { return comparingIndexed(keyExtractor, false, objs); } @@ -273,12 +303,8 @@ public class CompareUtil { * @since 6.0.0 */ @SuppressWarnings("unchecked") - public static Comparator comparingIndexed(final Function keyExtractor, final Collection objs) { - U[] array = null; - if (objs != null && objs.size() > 0) { - array = objs.toArray((U[]) Array.newInstance(objs.iterator().next().getClass(), objs.size())); - } - return comparingIndexed(keyExtractor, false, array); + public static Comparator comparingIndexed(final Function keyExtractor, final Iterable objs) { + return comparingIndexed(keyExtractor, false, ArrayUtil.toArray(objs, (Class) objs.iterator().next().getClass())); } /** diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/ReverseComparator.java b/hutool-core/src/main/java/cn/hutool/core/comparator/ReverseComparator.java deleted file mode 100644 index cc9332c47..000000000 --- a/hutool-core/src/main/java/cn/hutool/core/comparator/ReverseComparator.java +++ /dev/null @@ -1,49 +0,0 @@ -package cn.hutool.core.comparator; - -import java.io.Serializable; -import java.util.Comparator; - -/** - * 反转比较器 - * - * @author Looly - * - * @param 被比较对象类型 - */ -public class ReverseComparator implements Comparator, Serializable { - private static final long serialVersionUID = 8083701245147495562L; - - /** 原始比较器 */ - private final Comparator comparator; - - @SuppressWarnings("unchecked") - public ReverseComparator(final Comparator comparator) { - this.comparator = (null == comparator) ? ComparableComparator.INSTANCE : comparator; - } - - //----------------------------------------------------------------------------------------------------- - @Override - public int compare(final E o1, final E o2) { - return comparator.compare(o2, o1); - } - - @Override - public int hashCode() { - return "ReverseComparator".hashCode() ^ comparator.hashCode(); - } - - @Override - public boolean equals(final Object object) { - if (this == object) { - return true; - } - if (null == object) { - return false; - } - if (object.getClass().equals(this.getClass())) { - final ReverseComparator thatrc = (ReverseComparator) object; - return comparator.equals(thatrc.comparator); - } - return false; - } -} diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java index ca3d8bb8f..1cfaac9e2 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java @@ -14,7 +14,6 @@ import java.lang.reflect.Array; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; @@ -1307,22 +1306,8 @@ public class ArrayUtil extends PrimitiveArrayUtil { * @since 3.0.9 */ public static T[] toArray(final Iterable iterable, final Class componentType) { - return toArray(CollUtil.toCollection(iterable), componentType); + return CollUtil.toCollection(iterable).toArray(newArray(componentType, 0)); } - - /** - * 将集合转为数组 - * - * @param 数组元素类型 - * @param collection 集合 - * @param componentType 集合元素类型 - * @return 数组 - * @since 3.0.9 - */ - public static T[] toArray(final Collection collection, final Class componentType) { - return collection.toArray(newArray(componentType, 0)); - } - // ---------------------------------------------------------------------- remove /** diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java b/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java index e6922a1da..b90a512c3 100755 --- a/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONConfig.java @@ -75,7 +75,7 @@ public class JSONConfig implements Serializable { * @since 5.7.21 */ public JSONConfig setNatureKeyComparator() { - return setKeyComparator(CompareUtil.naturalComparator()); + return setKeyComparator(CompareUtil.natural()); } /**