这是o1,和o2调换过来后的代码,new Integer(o2.length()).compareTo(new Integer(o1.length()));比较的是两个字符串的长度,如果o2的长度大于o1的长度返回数值大于0。如果代码这样写又不一样了复制代码
- class LenComparator implements Comparator<String>
- {
- public int compare(String o1,String o2)
- {
- int num = new Integer(o2.length()).compareTo(new Integer(o1.length()));
- if(num==0)
- return o2.compareTo(o1);
- return num;
- }
- }
这时int num = new Integer(o1.length()).compareTo(new Integer(o2.length()));返回的数值小于0,当然等于0的时候还会比较字符串的大小,不作赘述。复制代码
- class LenComparator implements Comparator<String>
- {
- public int compare(String o1,String o2)
- {
- int num = new Integer(o1.length()).compareTo(new Integer(o2.length()));
- if(num==0)
- return o1.compareTo(o2);
- return num;
- }
- }
API说明“int compare(T o1, T o2)比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。”
“参数: o1 - 要比较的第一个对象。 o2 - 要比较的第二个对象。 返回: 根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。”
康大玮 发表于 2012-7-17 15:48 import java.util.*; class GenericDemo2 {
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |