黑马程序员技术交流社区
标题:
不知道怎么死的。。。。
[打印本页]
作者:
黄泉
时间:
2014-6-3 14:48
标题:
不知道怎么死的。。。。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
TreeSet<Student> ts = new TreeSet<Student>(new MyComparator());
ts.add(new Student("12",20));
ts.add(new Student("32",20));
ts.add(new Student("34",23));
ts.add(new Student("12",20));
ts.add(new Student("12",20));
for(Student s : ts)
{
println.sop(s.toString());
}
}
}
class MyComparator implements Comparator<Student>
{
public int compare(Student s1 ,Student s2)
{
int num = s1.getName().compareTo(s2.getName());
if(num == 0)
return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
return num;
}
}
class Student implements Comparable<Student>
{
private String name;
private int age;
Student(String namr,int age)
{
this.name = name;
this.age = age;
}
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Student))
throw new RuntimeException("数据类型错误");
Student s = (Student)obj;
return this.name.equals(s.name) && this.age == s.age;
}
public int hashCode()
{
return name.hashCode()+age*13;
}
public int compareTo(Student s)
{
Integer num = this.name.compareTo(s.name);
if(num == 0)
return new Integer(this.age).compareTo(new Integer(s.age));
return num;
}
public String toString()
{
return "姓名:"+name+",年龄:"+age;
}
}
复制代码
图像 1.png
(93.38 KB, 下载次数: 14)
下载附件
2014-6-3 14:48 上传
。。。不知道怎么死的,,,,这不科学锕。。。怎么会出现控空指针异常呢?
求解释
作者:
我叫MT
时间:
2014-6-3 14:50
空指针异常
作者:
我叫MT
时间:
2014-6-3 14:54
我叫MT 发表于 2014-6-3 14:50
空指针异常
你用的排序是comparetor,而他根本没有Student对象
作者:
東少
时间:
2014-6-3 15:04
自己好好看看单词有没写错
作者:
小柴
时间:
2014-6-3 16:48
java里没有指针啊,C++里才有指针和引用啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2