定义一个Employee类,该类包含: private成员变量name, age, birthday,其中birthday 为MyDate 类的对象;
并为每一个属性定义getter,setter方法;并重写toString方法输出name,age,birthday
MyDate类包含:
private)成员变量month, day, year;并为每一个属性定义getter,setter 方法;
创建该类的5个对象,并把这些对象放入TreeSet集合中,对集合中的元素进行排序,并遍历输出:
使Employee实现Comparable接口,并按name和lbirthday排序
public class MyDate implements Comparable{
private Integer month;
private Integer day;
private Integer year;
public MyDate(Integer year, Integer day, Integer month) {
super();
this.month = month;
this.day = day;
this.year = year;
}
@Override
public String toString() {
return " year=" + year + ", day=" + day + ", momth=" + month ;
}
public MyDate() {
super();
}
public Integer getMonth() {
return month;
}
public void setMonth(Integer month) {
this.month = month;
}
public Integer getDay() {
return day;
}
public void setDay(Integer day) {
this.day = day;
}
public Integer getYear() {
return year;
}
public void setYear(Integer year) {
this.year = year;
}
@Override
public int compareTo(Object o) {
// TODO Auto-generated method stub
MyDate md = (MyDate) o;
int one = this.getYear().compareTo(md.getYear());
if (one > 0){
return -1;
}else if (one < 0) {
return 1;
}else {
int two = this.getMonth().compareTo(md.getMonth());
if (two > 0) {
return -1;
}else if (two < 0) {
return 1;
}else {
int three = this.getDay().compareTo(md.getDay());
if (three > 0) {
return -1;
}else if (three < 0) {
return 1;
}else {
return 0;
}
}
}
}
}
import java.util.Date;
public class Employee implements Comparable{
private String name;
private int age;
private MyDate birthday;
Date d1 = new Date();
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 MyDate getBirthday() {
return birthday;
}
public void setBirthday(MyDate birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
age = d1.getYear() + 1900 - this.getBirthday().getYear();
return "name:" + name +" age:"+ age +" birthday:" + birthday;
}
@Override
public int compareTo(Object o) {
// TODO Auto-generated method stub
Employee emp = (Employee) o;
int one = this.getBirthday().compareTo(emp.getBirthday());
if (one == 0) {
return this.getName().compareTo(emp.getName());
}else {
return one;
}
}
public Employee(String name, MyDate birthday) {
super();
this.name = name;
this.birthday = birthday;
}
public Employee() {
super();
}
public Employee(String name, int age, MyDate birthday) {
super();
this.name = name;
this.age = age;
this.birthday = birthday;
}
}
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
import org.junit.Test;
public class TestEmp {
//演示自然排序
//年龄升序
//需要先添加JUnit库
@Test
public void testOne() {
// TODO Auto-generated method stub
Set set = new TreeSet();
Employee e1 = new Employee("小强",new MyDate(1990,5,8));
Employee e2 = new Employee("小明",new MyDate(1991,10,18));
Employee e3 = new Employee("小白",new MyDate(1991,7,20));
Employee e4 = new Employee("小黄",new MyDate(1992,7,20));
Employee e5 = new Employee("小黑",new MyDate(1992,7,10));
set.add(e1);
set.add(e2);
set.add(e3);
set.add(e4);
set.add(e5);
for (Object object : set) {
System.out.println(object);
}
}
//演示定制排序
//年龄降序
@Test
public void testTwo() {
// TODO Auto-generated method stub
Set set = new TreeSet(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
Employee emp1 = (Employee) o1;
Employee emp2 = (Employee) o2;
int one = emp1.getBirthday().compareTo(emp2.getBirthday());
if (one > 0) {
return -1;
}else if (one < 0) {
return 1;
}else {
return emp2.getName().compareTo(emp1.getName());
}
}
});
Employee e1 = new Employee("小强",new MyDate(1990,5,8));
Employee e2 = new Employee("小明",new MyDate(1991,10,18));
Employee e3 = new Employee("小白",new MyDate(1991,7,20));
Employee e4 = new Employee("小黄",new MyDate(1992,7,20));
Employee e5 = new Employee("小黑",new MyDate(1992,7,10));
set.add(e1);
set.add(e2);
set.add(e3);
set.add(e4);
set.add(e5);
for (Object object : set) {
System.out.println(object);
}
}
}
本文章是自己在学习尚硅谷网课上的练习