面試常見題:將「張三」「李一」「王五」按名字最後一字的讀音排序為「李一」「張三」「王五」。
Map<String, Integer>),如「一」→1、「二」→2...Comparator<String>,提取每個姓名的最後一字(或指定位置字符)。Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int v1 = map.get(o1.substring(1)); // 取第二字
int v2 = map.get(o2.substring(1));
return v1 - v2;
}
});
此法適用於已知有限字符集的排序規則;通用中文排序建議使用 Collator.getInstance(Locale.CHINA)。