/*
* 需求 :
* 1用TreeSet集合来装一个自定义对象StudentEntity
* 2.并用名字来排序
* 3。去除完全重复的数据
* 分析:
* 1.先写一个实体类StudentEntity
* 2.再写一个测试类TreeSetDemo2
* 3.通过StudentEntity构造方法创建10个StudentEntity对象,有一些数据是相同的
* 4.添加StudentEntity到集合TreeSet中
* 5.通过在StudentEntity类中重写Comparable的compareTo()方法来实现以姓名排序
*/
实体类StudentEntity
package com.ma.treeset;
import java.util.Comparator;
/**
* 实体类
* @author ma
*
*/
public class StudentEntity implements Comparable<StudentEntity>{
private String name;
private int age;
public StudentEntity() {
super();
}
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 StudentEntity(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "StudentEntity [name=" + name + ", age=" + age + "]";
}
@Override
public int compareTo(StudentEntity se) {
//判断名字长度是否相等
int num = this.getName().length() - se.getName().length();
//用compareTo()方法判断姓名是否是一样的
int num1 = num==0 ? this.getName().compareTo(se.getName()) : num;
int num2 = num1==0 ? this.getAge() - se.getAge() : num1;
return num2;
}
}
测试类TreeSetDemo2:
package com.ma.treeset;
import java.util.TreeSet;
/**
* 测试类
* @author ma
*
*/
public class TreeSetDemo2 {
public static void main(String[] args) {
//创建一个TreeSet对象
TreeSet<StudentEntity> ts = new TreeSet<StudentEntity>();
//创建10个StudentEntity对象
StudentEntity s1 = new StudentEntity("张三1",111);
StudentEntity s2 = new StudentEntity("张三3",112);
StudentEntity s3 = new StudentEntity("张三2",113);
StudentEntity s4 = new StudentEntity("张三8",114);
StudentEntity s5 = new StudentEntity("张三5",115);
StudentEntity s6 = new StudentEntity("张三6",116);
StudentEntity s7 = new StudentEntity("张三7",117);
StudentEntity s8 = new StudentEntity("张三4",118);
StudentEntity s9 = new StudentEntity("张三1",119);
StudentEntity s10 = new StudentEntity("张三1",111);
//添加数据
ts.add(s1);
ts.add(s2);
ts.add(s3);
ts.add(s4);
ts.add(s5);
ts.add(s6);
ts.add(s7);
ts.add(s8);
ts.add(s9);
ts.add(s10);
//遍历输出
for(StudentEntity s : ts){
System.out.println(s);
}
}
}
输出结果:
StudentEntity [name=张三1, age=111]
StudentEntity [name=张三1, age=119]
StudentEntity [name=张三2, age=113]
StudentEntity [name=张三3, age=112]
StudentEntity [name=张三4, age=118]
StudentEntity [name=张三5, age=115]
StudentEntity [name=张三6, age=116]
StudentEntity [name=张三7, age=117]
StudentEntity [name=张三8, age=114]