TreeSet集合的一個比較器排序去重案例
阿新 • • 發佈:2019-02-11
Student基礎資訊
package TreeSetDemo;
public class Student implements Comparable<Student>{
//學生姓名
private String name;
//學生年齡
private int age;
//無參構造
public Student() {
// TODO Auto-generated constructor stub
}
// 帶參構造
public Student(String name, int age) {
super();
this .name = name;
this.age = age;
}
//getXxx() setXxx()方法
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;
}
@Override
public int compareTo(Student s) {
//按照年齡排序,主要條件
int num = this.age- s.age;
//如果年齡相同,比較姓名,如果姓名相同的話,才是同一個物件
int num1 = num == 0 ? this.name.compareTo(s.name) : num;
return num1;
}
}
TreeSetDemo類
package TreeSetDemo;
import java.util.TreeSet;
public class TreeSetDemo1 {
public static void main(String[] args) {
//建立集合物件
TreeSet<Student> ts = new TreeSet<Student>();
//建立元素
Student s1 = new Student("hello", 27);
Student s2 = new Student("world", 66);
Student s3 = new Student("hello", 27);
Student s4 = new Student("java", 63);
Student s5 = new Student("world", 65);
Student s6 = new Student("eclipse", 99);
//新增元素
ts.add(s1);
ts.add(s2);
ts.add(s3);
ts.add(s4);
ts.add(s5);
ts.add(s6);
//遍歷
for(Student s : ts){
System.out.println(s.getName() + "-------" + s.getAge());
}
}
}