Java自定义比较器实现中文排序
compareTo()是两个字符串对象按ASCII比较大小,返回一个整数值,如果调用字符串对象大,返回正整数,反之,返回负整数。Java 内实现自定义比较器比较简单,实现Comparator接口的compare()这个方法来制定排序规则,按照Java规范应满足以下约定,否则会抛Comparison method violates its general contract 异常。规则如下:自反性 sgn == -sgn传递性 compare > 0 compare>0) =>得出 compare>0一致性 == ,这点规范中原文是“not strictly required”,不是必须的,但是实现者应该知道不一致的后果,所以尽量实现这一要求.以下代码示例:中文汉字是Unicode编码,所以排序时不是我们习惯用的拼音字母。也可以对图书类的名字进行排序。在创建集合类的时候传入一个比较器对象,系统就会识别比较器中的方法了。
用户评论