黑马程序员技术交流社区
标题:
问个小问题.关于Integer比较大小问题
[打印本页]
作者:
李晓旭
时间:
2012-3-20 15:44
标题:
问个小问题.关于Integer比较大小问题
class Demo implements Comparator<Student>
{
public int compare(Student s1,Student s2)
{
int num = s1.getName().compareTo(s2.getName());
if (num==0)
return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge())); //*
return num;
}
}
复制代码
关于int型数值比大小
毕老师的视频里大多数都用得是上面带*注释的语句
为什么不写成
return s1.getAge() - s2.getAge();
老师那样写有什么好处?比如运行效率,或者抛出异常等等
作者:
魏群
时间:
2012-3-20 16:24
java的中心思想就是所有的一切都是对象。
java中除了8中基本数据类型外都是对象。之所以有这8中基本数据类型是为了照顾程序员的习惯。
因为所有的都是对象自然在java中也有于这8种基本数据类型对应的对象。这就没违背java的设计原则。
对象之间传递消息靠的就是对象的方法。public int compareTo(Integer anotherInteger)在数字上比较两个 Integer 对象。
new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
这样写更符合java语言的中心思想。
以上纯属个人见解。看看就行了,别来喷我。
作者:
李深山
时间:
2012-3-20 16:44
Comparable接口
1.要使一个实例化对象具有可比较性,那么这个实例化对象所对应的类,就必须实现Comparable接口!
2.String,和int的包装类Interger都实现了Comparable这个接口!所以他们都具有可比较性。
作者:
李飞
时间:
2012-3-20 16:52
这个只能说是看起来比较专业而已,其实没什么区别
作者:
尹震
时间:
2012-3-20 17:03
return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge())); //老师这么写是为了让一些学生们能够理解。
return s1.getAge() - s2.getAge(); //这么写也是可以的。
全凭自己理解。
作者:
周建
时间:
2012-3-20 17:34
return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge())); //返回的是1,-1,或0;
return s1.getAge() - s2.getAge();//返回的是整数负数或0;
在TreeSet集合中通过判断返回的数的大小排序,两种方法都可以实现需要;但是感觉通过对象调用方法的比较更专业
作者:
李晓旭
时间:
2012-3-20 23:02
ok,了解了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2