Student.java
public class Student {
private String no;
private String name;
private String major;
private String age;
private String time;
public Student() {
}
public Student(String no, String name, String major, String age, String time) {
this.no = no;
this.name = name;
this.major = major;
this.age = age;
this.time = time;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
@Override
public String toString() {
return no + "\t" + name+"\t"+ major + "\t" + age + "\t" + time ;
}
}
Task.java
public class Task3 {
public static void main(String[] args) {
List<Student> list=new ArrayList<Student>();
list.add(new Student("1001", "Smith", "计算机", "20", "2010.9.1"));
list.add(new Student("1002", "Peter", "英语", "23", "2011.9.2"));
list.add(new Student("1003", "Allen", "物理", null, "2013.9.2"));
list.add(new Student("1004", "Linda", "英语", "23", "2011.9.3"));
list.add(new Student("1005", "Jerry", "物理", null, "2012.9.2"));
System.out.println("按照年龄排序后:");
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
if(o1.getAge()==null||o2.getAge()==null)
return -1;
if(o1.getAge().length()>o2.getAge().length())
return 1;
if(o1.getAge().length()<o2.getAge().length())
return -1;
if(o1.getAge().compareTo(o2.getAge())>0)
return 1;
if(o1.getAge().compareTo(o2.getAge())<0)
return -1;
if(o1.getAge().compareTo(o2.getAge())==0)
return 0;
return 0;
}
});
//迭代器遍历
System.out.println("编号\t姓名\t专业\t年龄\t入学日期");
Iterator<Student> it=list.iterator();
while(it.hasNext()) {
System.out.println(it.next().toString());
}
System.out.println("按照入学日期排序后:");
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
if(o1.getTime()==null||o2.getTime()==null)
return -1;
if(o1.getTime().length()>o2.getTime().length())
return 1;
if(o1.getTime().length()<o2.getTime().length())
return -1;
if(o1.getTime().compareTo(o2.getTime())>0)
return 1;
if(o1.getTime().compareTo(o2.getTime())<0)
return -1;
if(o1.getTime().compareTo(o2.getTime())==0)
return 0;
return 0;
}
});
System.out.println("编号\t姓名\t专业\t年龄\t入学日期");
Iterator<Student> it2=list.iterator();
while(it2.hasNext()) {
System.out.println(it2.next().toString());
}
}
}