黑马程序员技术交流社区
标题:
求解答
[打印本页]
作者:
佛山java爱好者
时间:
2014-7-14 21:53
标题:
求解答
class Student implements Comparable
{
private String name;
private int age;
Student(String name,int age)
{
this.name=name;
this.age=age;
}
public String get_Name()
{
return name;
}
public int get_Age()
{
return age;
}
public int compareTo(Object obj)
{
if(!(obj instanceof Student))
{
throw new RuntimeException("不是学生对象");
Student s=(Student)obj;
if (this.age>s.age)
{
return 1;
}
if (this.age==s.age)
{
return this.name.compareTO(s.name);
}
return -1;
}
}
}
class Demo
{
public static void main(String[] args)
{
TreeSet ts=new TreeSet();
ts.add("lisi01,12");
ts.add("lisi02,13");
ts.add("lisi08,54");
Iterator it=ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
为什么编译失败呢
作者:
张盼
时间:
2014-7-14 22:15
没有导入包,在重写compareTo方法中一个大括号写错了地方,throw后面应该有一个大括号。
在最后一个if语句中,应该是compareTo,不是compareTO
import java.util.TreeSet;
import java.util.Iterator;
class Student implements Comparable
{
private String name;
private int age;
Student(String name,int age)
{
this.name=name;
this.age=age;
}
public String get_Name()
{
return name;
}
public int get_Age()
{
return age;
}
public int compareTo(Object obj)
{
if(!(obj instanceof Student))
{
throw new RuntimeException("不是学生对象");
}
Student s=(Student)obj;
if (this.age>s.age)
{
return 1;
}
if (this.age==s.age)
{
return this.name.compareTo(s.name);
}
return -1;
}
}
class Demo
{
public static void main(String[] args)
{
TreeSet ts=new TreeSet();
ts.add("lisi01,12");
ts.add("lisi02,13");
ts.add("lisi08,54");
Iterator it=ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
复制代码
这是改过的代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2