黑马程序员技术交流社区

标题: 无基础自学课程问题求解。 [打印本页]

作者: 張帅    时间: 2013-9-13 08:23
标题: 无基础自学课程问题求解。
import java.util.*;//此处为什么需要包,没包编译不通过??
class TreeSetTest
{
        public static void main(String[] args)
        {
                TreeSet ts = new TreeSet(new StrLenComparator());
                ts.add("a");
                ts.add("ab");
                ts.add("abc");
                ts.add("bcdf");
                ts.add("ab");
                Iterator it = ts.iterator();
                while(it.hasNext())
                {
                        System.out.println(it.next());
                }
        }
}
class StrLenComparator implements Comparator
{
        public int compare(Object o1,Object o2)
        {
                String s1 = (String)o1;//在此处为什么将o1强转为字符串s1?
                String s2 = (String)o2;//同上所述......s2?
                int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
                if(num==0)
                        return s1.compareTo(s2);
                        return num;
        }
}

作者: Yuan先生    时间: 2013-9-13 08:41
你使用了Set集合,集合包装在java.util包里面的,不引包的话会编译错误,除非你自己定义,你也可以只导入TreeSet:import java.util.TreeSet;用*会把util包中的都导入
程序中compare方法接收的参数是Object,所以要强转为String
作者: 赵凯    时间: 2013-9-13 10:23
其实Java的包和C/C++的库,是可以使用的现成功能。在Java代码中导入包,与其说为了使用里面的方法,不如按照面向对象语言的特点,说成为了使用里面的类,因为Java作为典型的面向对象语言。你使用的集合就是放在util包中,可以直接使用,如果你不导入包,就会编译失败。关于转换成String类型的,就是你传入的是Object类型的,那是所有类的父类,也可以说是超类,这就是多态中的向下转型,转换成子类类型的才能使用。
作者: 追寻Dream    时间: 2013-9-20 12:50
(string)是o1强制转为字符串类型,强制转换之后,再赋值给s1;Object o1,Object o2 定义的是int类型,而不是自字符串类型!
作者: 追寻Dream    时间: 2013-9-20 12:50
#(string)是o1强制转为字符串类型,强制转换之后,再赋值给s1;Object o1,Object o2 定义的是int类型,而不是自字符串类型!#
作者: 追寻Dream    时间: 2013-9-20 12:51
#(string)是o1强制转为字符串类型,强制转换之后,再赋值给s1;Object o1,Object o2 定义的是int类型,而不是自字符串类型!
作者: 追寻Dream    时间: 2013-9-20 12:51
(string)是o1强制转为字符串类型,强制转换之后,再赋值给s1;Object o1,Object o2 定义的是int类型,而不是自字符串类型!
作者: 王新年    时间: 2013-12-2 20:53
你使用了工具类中的TreeSet集合,该类在工具包中
作者: chensc    时间: 2013-12-3 08:21
学习学习!
作者: fanyong    时间: 2013-12-3 09:45
aaaaaaaaaaaaaaaaaaaaaa




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2