A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 張帅 中级黑马   /  2013-9-13 08:23  /  2495 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;
        }
}

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

9 个回复

倒序浏览
你使用了Set集合,集合包装在java.util包里面的,不引包的话会编译错误,除非你自己定义,你也可以只导入TreeSet:import java.util.TreeSet;用*会把util包中的都导入
程序中compare方法接收的参数是Object,所以要强转为String

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
其实Java的包和C/C++的库,是可以使用的现成功能。在Java代码中导入包,与其说为了使用里面的方法,不如按照面向对象语言的特点,说成为了使用里面的类,因为Java作为典型的面向对象语言。你使用的集合就是放在util包中,可以直接使用,如果你不导入包,就会编译失败。关于转换成String类型的,就是你传入的是Object类型的,那是所有类的父类,也可以说是超类,这就是多态中的向下转型,转换成子类类型的才能使用。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
(string)是o1强制转为字符串类型,强制转换之后,再赋值给s1;Object o1,Object o2 定义的是int类型,而不是自字符串类型!
回复 使用道具 举报
#(string)是o1强制转为字符串类型,强制转换之后,再赋值给s1;Object o1,Object o2 定义的是int类型,而不是自字符串类型!#
回复 使用道具 举报
#(string)是o1强制转为字符串类型,强制转换之后,再赋值给s1;Object o1,Object o2 定义的是int类型,而不是自字符串类型!
回复 使用道具 举报
(string)是o1强制转为字符串类型,强制转换之后,再赋值给s1;Object o1,Object o2 定义的是int类型,而不是自字符串类型!

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
你使用了工具类中的TreeSet集合,该类在工具包中

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
chensc 金牌黑马 2013-12-3 08:21:09
9#
学习学习!
回复 使用道具 举报
aaaaaaaaaaaaaaaaaaaaaa
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马