黑马程序员技术交流社区
标题:
这里的return这么理解
[打印本页]
作者:
风云
时间:
2013-5-19 15:35
标题:
这里的return这么理解
本帖最后由 风云 于 2013-5-19 19:13 编辑
import java。util.*
class Collectionsdemo
{
public static void main(string[] args)
sortDemo();
}
public static void sortDemo()
{
List<string> list=new Arraylist<string>();
list.add("abcd");
list.add("zzz");}
list.add("kbzd");}
Collections.sort(list new strlenCompartor();
calss strlencomparator implements comparator<string>
{
public int compare(string s1,string s2)
{
if(s1.length()>s2.length())
return 1;
if(s1.length()<s2.length())
return -1;
return s1.compareTo(s2);
}
在这里当return分别返回1,-1,0 是什么作用 返回的形式是s1,s2的长度吗?
作者:
郑齐育
时间:
2013-5-19 17:53
你这代码明显是为了自定义一个字符串容器的派寻方法,并且自己实现了该容器的比较器,比较器需要实现比较方法,比较方法根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。 也就是说返回值是比较器的比较方法的判断依据。
作者:
翟宝海
时间:
2013-5-19 18:14
本帖最后由 翟宝海 于 2013-5-19 18:16 编辑
当我们比较两个具备可比性的事物时,必然会有一个结果:如A与B比较长度,只会有三种结果:A>B、A<B、A=B;这时可以分配用1、0、-1代表这三种状态,
并用return将这三种状态告诉调用比较器的排序对象
,最终让CPU知道知道A与B之间的相互关系,
然后根据它们的相互关系給它们排序。
举例来说,我们建一个一维坐标系,取一点a作为原点(0)对应A,这时来了一个B与A相比较,我们就可以根据必然会有的结果:1、0、-1来给B在坐标系上分配其对应的位置:1,B在A左边;
-1,B在A右边;
0,比较A与B其他的属性,再根据返回的结果排序;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2