feat: comparator for chinese pinyin

This commit is contained in:
easepan
2020-09-09 19:00:02 +08:00
parent 9267c8217a
commit cdbbaf1b20

View File

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