java ArrayList排序中文文字排序

java ArrayList排序中文文字排序

ArrayList<String> arr = new ArrayList<>();
arr.add("唐僧");
arr.add("孙悟空");
arr.add("猪八戒");
arr.add("沙和尚");
arr.add("陈坤");
arr.add("曹阿瞒");
arr.add("阿古朵");
System.out.println("排序前:" + arr.toString());
Collections.sort(arr, new Comparator<String>() {
    Collator collator = Collator.getInstance(Locale.CHINA);
    @Override
    public int compare(String o1, String o2) {
        CollationKey key1 = collator.getCollationKey(o1);
        CollationKey key2 = collator.getCollationKey(o2);
        return key1.compareTo(key2);
    }
});
System.out.println("排序后:" + arr.toString());

结果

排序前:[唐僧, 孙悟空, 猪八戒, 沙和尚, 陈坤, 曹阿瞒, 阿古朵]
排序后:[阿古朵, 曹阿瞒, 陈坤, 沙和尚, 孙悟空, 唐僧, 猪八戒]

版权声明:本文为geaosu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。