黑马程序员技术交流社区
标题:
代码在判断时怎么比较的小问题
[打印本页]
作者:
学习代码
时间:
2014-3-26 21:23
标题:
代码在判断时怎么比较的小问题
class ReverseOrderDemo
{
public static void main(String[] args)
{
TreeSet<String> tr = new TreeSet<String>(new Demo1());
tr.add("abw");
tr.add("abewc");
tr.add("abcd");
tr.add("ae");
Iterator<String> it = tr.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
class Demo1 implements Comparator<String>
{
public int compare(String o1,String o2)
{
if(o1.length()>o2.length())//这里以及下面的代码在比较的时候 是怎么读的啊
//大侠 能用语言来描述一下吗?
return -1; //比的时候是不是两个字符串,真正的长度呢?
if(o1.length()<o2.length())
return 1;
return o1.compareTo(o2);
}
}
复制代码
谢谢
作者:
谭荣强
时间:
2014-3-26 22:44
if(o1.length()>o2.length())//.length()是获取字符串的长度,当然是按长度比的。如果o1>02,返回-1
return -1;
if(o1.length()<o2.length())//同上
return 1;
return o1.compareTo(o2);//如果字符串长度相等,那就调用字符串对象的compareTo()方法,按照默认的顺序排列
作者:
papercup
时间:
2014-3-26 22:46
查看文档,comparator中的compare方法是这么说的:
参数:
o1 - 要比较的第一个对象。
o2 - 要比较的第二个对象。
返回:
根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
重写后意思就是:
o1的长度比o2长的时候就返回-1(即负整数)
反之就返回 1(正整数)
compareTo返回的是o1和o2的长度差
treeset就根据你定义的比较器进行排序。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2