黑马程序员技术交流社区
标题:
无基础自学课程问题求解。
[打印本页]
作者:
張帅
时间:
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