文章
总结
1. 按照指定语言,对字符串进行排序. 使用Collator .
- 使用方法一,使用 CollationKey getCollationKey(String source) 获取到CollationKey实例后进行比较.
List list = ***;
Comparator<String> comparator = new Comparator<String>() {
public int compare(String o1, String o2) {
//Collator.getInstance传入参数,决定按照哪个地区的语言进行排序
Collator collator = Collator.getInstance(Locale.getDefault());
return collator.getCollationKey(o1).compareTo(
collator.getCollationKey(o2));
}
};
Collections.sort(list, comparator);
- 使用方法二,直接使用 Collator中 int compare(String source, String target) 直接比较2个字符串.
List list = ***;
Comparator<String> comparator = new Comparator<String>() {
public int compare(String o1, String o2) {
//Collator.getInstance传入参数,决定按照哪个地区的语言进行排序
Collator collator = Collator.getInstance(Locale.getDefault());
return collator.compare(o1, o2);
}
};
Collections.sort(list, comparator);
- Collator.getInstance(Locale desiredLocale) 获取按照指定地区语言进行字符串比较的Collator.
- 什么是CollationKey,什么时候使用CollationKey,什么时候直接使用Collator.compare
- 什么是CollationKey
- CollationKey表示在特定规则Collator下的String实例.
- 两个CollationKey比较结果(compareTo结果)和对应的2个String的比较结果是一致的.
- 什么时候使用CollationKey
Using <code>CollationKey</code>s
* to compare <code>String</code>s is generally faster than using
* <code>Collator.compare</code>. Thus, when the <code>String</code>s
* must be compared multiple times, for example when sorting a list
* of <code>String</code>s. It's more efficient to use <code>CollationKey</code>s.
- 当字符串需要进行多次比较,例如1个由String构成的list,对其进行排序使用CollationKey效率更高,如果仅仅是2个字符串比较1次,直接使用Collator实例执行compare效率更高.