黑马程序员技术交流社区
标题:
求解comparator使用过程遇到的小问题,如下
[打印本页]
作者:
潜伏
时间:
2013-11-20 17:16
标题:
求解comparator使用过程遇到的小问题,如下
在TreeSet集合使用中定义了一个比较器后,而TreeSet类型装的的是String类型。compare里面比较的的字符串的长度 的时候。为什么要写成reurn new Integer (l1.length()) compareTo(new Integer(l2.length())
不懂得其实就是l1.length本身就是个Integer 类型,在new一个Integer类型不是重复吗?????
作者:
雨过丶天已晴
时间:
2013-11-20 17:26
l1.length()是一个int类型,在jdk1.5新特性中有一个自动装箱,但是提升是分场合的,这个场合不会自动装箱,所以还是int类型,自然要进行包装。
作者:
@ne_pie尒ce
时间:
2013-11-20 17:39
如果不进行封装,也可以这样比较reurn l1.length()-l2.length();
因为int是基本数据类型,不能调用compareTo方法,所以进行封装。
当把int类型的数据放进集合这种存放对象的容器中时,它才会自动装箱成Integer类型。
所以这里要手动封装。
作者:
hurryup
时间:
2013-11-20 20:37
因为l1.length返回一个int型,在用CompareTo()方法进行比较时,要求两边的是对象类型,这里int型不能自动装箱只能手动进行用new Integer()吧int型包装成对象型在进行比较。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2