黑马程序员技术交流社区
标题:
谁帮我看看这个程序
[打印本页]
作者:
刘俊佳
时间:
2012-8-16 09:40
标题:
谁帮我看看这个程序
以下是代码:
public class GenericDemo7 {
public static void main(String[] args)
{
TreeSet<Student3> ts=new TreeSet<Student3>(new Comp());
ts.add(new Student3("abc03"));
ts.add(new Student3("abc02"));
ts.add(new Student3("abc06"));
ts.add(new Student3("abc01"));
Iterator<Student3> it=ts.iterator();
while(it.hasNext())
{
System.out.println(it.next().getName());
}
}
}
复制代码
class Comp implements Comparator<Student3>
{
public int compare(Student3 s1,Student3 s2)
{
return s1.getName().compareTo(s2.getName());
}
}
复制代码
class Person3
{
private String name;
Person3(String name)
{
this.name=name;
}
public String getName() {
return name;
}
public String toString()
{
return "person:"+name;
}
}
复制代码
class Student3 extends Person3
{
Student3(String name) {
super(name);
}
}
复制代码
这里的Comp类里面怎么可以用compareTo方法?没实现Comparable接口啊。
作者:
官文昌
时间:
2012-8-16 09:50
class Comp implements Comparator<Student3>
{
public int compare(Student3 s1,Student3 s2)
{
return s1.getName().compareTo(s2.getName());//你的name是字符串类型吧,你查阅api的string,字符串是有c
ompareTo方法的,这里调用的是字符串的
c
ompareTo方法
}
}
作者:
方志亮
时间:
2012-8-16 09:55
return s1.getName().compareTo(s2.getName());
s1.getName()得到是一个字符串 而在String类中有compareTo这个方法
compareTo(String anotherString) 按字典顺序比较两个字符串。
compareTo(String anotherString) 返回类型为int类型
作者:
赵方明
时间:
2012-8-16 09:55
s1.getName()返回的是一个字符串,由于String类已经实现了comparable接口,字符串自身就具有了比较性。
它调用的是按自然排序的compareTo()方法.
作者:
左建飞
时间:
2012-8-16 10:05
楼主可以查查API,Comparable是一个接口,在它的已知实现类中是由String的。
s1.getName().compareTo(s2.getName()是两个String进行比较,当然可以用compareTo方法啦。
作者:
杨健yj
时间:
2012-8-16 10:28
s1.getName().compareTo(s2.getName()是调用的String类的compareTo()方法是自然排序的,其实String类已经实现了Comparable接口
作者:
刘俊佳
时间:
2012-8-29 08:41
结合视频和楼上各位的解答问题已经解决,谢谢了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2