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 5c0766073..c41a4d000 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 @@ -136,10 +136,10 @@ public class CompareUtil { */ public static Comparator comparingPinyin(Function keyExtractor, boolean reverse) { Objects.requireNonNull(keyExtractor); - Collator chineseCollator = Collator.getInstance(Locale.CHINESE); + PinyinComparator pinyinComparator = new PinyinComparator(); if (reverse) { - return (o1, o2) -> chineseCollator.compare(keyExtractor.apply(o2), keyExtractor.apply(o1)); + return (o1, o2) -> pinyinComparator.compare(keyExtractor.apply(o2), keyExtractor.apply(o1)); } - return (o1, o2) -> chineseCollator.compare(keyExtractor.apply(o1), keyExtractor.apply(o2)); + return (o1, o2) -> pinyinComparator.compare(keyExtractor.apply(o1), keyExtractor.apply(o2)); } }