练习学习与收集(Comparable)

(十五) Comparable
package one;
import java.util.*;
public class HashSetTest {
public static void main(String[] args) {
Set set=new HashSet();
Student s1=new Student("xiaoqiang",20);
Student s2=new Student("xiaoqiang",21);
Student s3=new Student("xiaoqiang",22);
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());
s3.setAge(20);
System.out.println(set.size());
set.remove(new Student("xiaoqiang",20));
System.out.println(set.size());
set.add(new Student("xiaoqiang",20));
System.out.println(set.size());

Iterator it=set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}


final class Student implements Comparable{
private String name;
private int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public boolean equals(Object obj){
if(obj instanceof Student){
Student s=(Student)obj;
if(s.name.equals(this.name) && s.age==this.age){
return true;
}
}
return false;
}

public int hashCode(){
return name.hashCode()^age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString(){
return name+":"+age;
}
public int compareTo(Object obj) {
Student s=(Student)obj;
if(this.age>s.age){
return 1;
}else if(this.age<s.age){
return -1;
}else{
return this.name.compareTo(s.name);
}
}
}

你可能感兴趣的:(comparable)