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()); 结果 排序前:[唐僧, 孙悟空, 猪八戒, 沙和尚, 陈坤, 曹阿瞒, 阿古朵] 排序后:[阿古朵, 曹阿瞒, 陈坤, 沙和尚, 孙悟空, 唐僧, 猪八戒]