有点迷糊
public int hashCode(){
return this.name.hashCode()+this.age*17;
}
public boolean equals(Object obj){
if (this ==obj) {
return true;
}
if (!(this instanceof Student)){
return false;
}
Student s = (Student) obj;
return this.name.equals(s.name) && this.age == s.age;
} 作者: 王靖远 时间: 2013-5-27 23:31
有些可以自然排序。实际开发当然是根据需求自定义排序作者: 廖志强 时间: 2013-5-27 23:50
同学,是HashMap为了保证为一性,必须写HashCode()和equals(),方法,而TreeMap是通过comparable和comparator接口来实现唯一性的。
通过comparator
public class TreeSetTest1 {
public static void main(String[] args) {
TreeSet<Student> tree = new TreeSet<Student>(new Comparator<Student>(){
@Override
public int compare(Student o1, Student o2) {
// TODO Auto-generated method stub
int num = o1.getName().length()-o2.getName().length();
int num2=(num==0)?(o1.getAge()-o2.getAge()):num;
int num3=(num2==0)?o1.getName().compareTo(o2.getName()):num2;
return num3;
}
}); 作者: 廖志强 时间: 2013-5-27 23:53
还有一个是通过comparable
public class Person implements Comparable<Person>//注意实现接口。
@Override
public int compareTo(Person p) { // 作者: 石贤芝 时间: 2013-5-28 08:23
TreeMap是以二叉树的结构形式来存储对象的;二叉树是一种有序的数据结构,为了保证有序,使用TreeMap有两种方式。