我想对一个 ArrayList<String>
进行排序,但问题是我的母语字符 - 我的字母表长这样:a, ą, b, c, č, d, e, f ... z, ž
。如你所见,z
字符靠近末尾,而ą
在字母表中排名第二,因此当我对数组进行排序后,排序结果不正确。所有我的母语字符都被移到了数组的末尾。例如:
package lt;
import java.util.ArrayList;
import java.util.Collections;
public class test {
public static void main(String[] args) {
List<String> items = new ArrayList<>();
items.add("bbc");
items.add("ąbc");
items.add("abc");
items.add("zzz");
System.out.println("Unsorted: ");
for(String str : items) {
System.out.println(str);
}
Collections.sort(items);
System.out.println();
System.out.println("Sorted: ");
for(String str : items) {
System.out.println(str);
}
}
}
输出:
Unsorted:
bbc
ąbc
abc
zzz
Sorted:
abc
bbc
zzz
ąbc
应该是:Sorted:
abc
ąbc
bbc
zzz