- class LenComparator implements Comparator<String> {
-
-
- public int compare(String o2, String o1) {
- int num = new Integer(o1.length()).compareTo(new Integer(o2.length()));// 这种方式是以从小到大方式排,毕老师讲只要调换下o1和o2的位置就可以实现倒序排
- /**
- * 大哥,你 明明是 o1和o2进行比较,你就应该吧o2当做参数放进参数里面,这样返回的值才是正确的,
- * 你若是反过来让o1当做参数,返回的int值当然是反得,但是你的外层compare(o1,o2)方法参数列表没变,当然结果要反过来了。
- *
- * 验证:在o2.compareTo(o1)的同时将compare的参数调转一下成为compare(o2,o1),这样aaa和cba的顺序就不会乱了。
- * 但是这样,上面的num值就又反了,所以变成了长度倒序。
- *
- */
- if (num == 0){return o2.compareTo(o1);}
-
- return num;
- }
- }
复制代码 |