import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
//聚合类
public class Class {
private ArrayList<Student>students =new ArrayList();
public void addStudent(Student student){
students.add(student);
}
//排序
public void displayStudents(){
Comparator comp = new Mycompartor();
Collections.sort(students,comp);
Iterator i=students.iterator();
while(i.hasNext()){
Student student =(Student)i.next();
System.out.println(""+student.getName()+""+student.getAge());
}
}
}
public class Student {
public String Name;
public int Age;
public String getName() {
return Name;
}
public int getAge() {
return Age;
}
public void setName(String name) {
Name = name;
}
public Student(String name, int age) {
super();
Name = name;
Age = age;
}
public void setAge(int age) {
Age = age;
}
}
import java.util.Comparator;
//比较器
public class Mycompartor implements Comparator {
public int compare(Object obj1,Object obj2) {
Student s1 = (Student)obj1;
Student s2 = (Student)obj2;
if(s1.getAge()<s2.getAge()){
return 1;
}else{
return 0;
}
}
}
//测试
public class Main {
public static void main(String[] args) {
Class obj = new Class();
Student student1, student2, student3, student4;
student1 = new Student("xiaoming", 20);
student2 = new Student("xiaohua", 22);
student3 = new Student("xiaowang", 26);
student4 = new Student("xiaoding", 25);
obj.addStudent(student1);
obj.addStudent(student2);
obj.addStudent(student3);
obj.addStudent(student4);
obj.displayStudents();
}
}
运行结果:
xiaoming20
xiaohua22
xiaowang26
xiaoding25
实验结果分析:
这是一个迭代器模式,class充当聚合类,在其中定义了一个ArrayList类型的集合存储Student对象,定义一个MyComparator实现了Comparator接口实现排序,在Class类的displayStudent方法中放一个比较器排序和一个迭代器遍历集合。