用于比较字符串值的Collat​​or(区分设置敏感)和compareTo(按字典顺序)之间的差异

Tel*_*tha 1 java compareto

我一直在阅读使用Collat​​or和String中的compareTo方法来比较字符串.我不确定两者在阅读API方面的真正区别.什么时候比另一个更喜欢?

API Collat​​or

API String compareTo

aoi*_*222 6

基本上,区域设置敏感意味着它考虑了所使用的语言,并且可以使用不同的权重来进行不同字符之间的比较.

"例如,在捷克语中,"e"和"f"被认为是主要差异,而"e"和"ě"是次要差异,"e"和"E"是三级差异,"e"和"e"是相同." 1

通过compareTo的字典比较,它只使用它们的Unicode值而不是考虑这些不同的权重.

"为了比较字符串一次,比较方法提供了最佳性能.但是,在对字符串列表进行排序时,通常需要多次比较每个字符串.在这种情况下,Collat​​ionKeys提供更好的性能.Collat​​ionKey类将String转换为一系列可以与其他Collat​​ionKeys进行逐位比较的位.Collat​​ionKey由给定String的Collat​​or对象创建." 1

1 Colator Javadoc