您的位置:首页 > 其它

使用策略模式对存放在list表中的学生信息进行正逆排序

2014-03-28 15:58 441 查看
public class Student
{
private int ID;
private String name;
private int age;
public int getID()
{
return ID;
}
public void setID(int id)
{
ID = id;
}
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;
}

}

import java.util.*;
public interface SortInterface
{
public void sort(List<Student> list);
}

import java.util.*;
public class AgeTurn implements Comparator<Student>,SortInterface
{
@Override
public int compare(Student o1, Student o2)
{
// TODO Auto-generated method stub
if(o1.getAge()==o2.getAge())
return o1.getID()-o2.getID();
else
return o1.getAge()-o2.getAge();
}
public void sort(List<Student> list)
{
Collections.sort(list, new AgeTurn());
}
}

import java.util.*;
public class AgeTurn2 implements Comparator<Student>,SortInterface
{
@Override
public int compare(Student o1, Student o2)
{
// TODO Auto-generated method stub
if(o1.getAge()==o2.getAge())
return o1.getID()-o2.getID();
else
return o2.getAge()-o1.getAge();
}
public void sort(List<Student> list)
{
Collections.sort(list, new AgeTurn2());
}
}

import java.util.*;
public class IdTurn implements Comparator<Student>,SortInterface
{
@Override
public int compare(Student o1, Student o2)
{
// TODO Auto-generated method stub
return o1.getID()-o2.getID();
}
public void sort(List<Student> list)
{
Collections.sort(list, new IdTurn());
}
}

import java.util.*;
public class IdTurn2 implements Comparator<Student>,SortInterface
{
@Override
public int compare(Student o1, Student o2)
{
// TODO Auto-generated method stub
return o2.getID()-o1.getID();
}
public void sort(List<Student> list)
{
Collections.sort(list, new IdTurn2());
}
}

import java.util.*;
public class NameTurn implements Comparator<Student>, SortInterface
{
@Override
public int compare(Student o1, Student o2)
{
// TODO Auto-generated method stub
if(o1.getName().equals(o2.getName()))
return  o1.getID()-o2.getID();
else
return o1.getName().compareTo(o2.getName());
}
public void sort(List<Student> list)
{
Collections.sort(list, new NameTurn());
}
}

import java.util.*;
public class NameTurn2 implements Comparator<Student>,SortInterface
{
@Override
public int compare(Student o1, Student o2)
{
// TODO Auto-generated method stub
if(o1.getName().equals(o2.getName()))
return o1.getID()-o2.getID();
else
return o2.getName().compareTo(o1.getName());
}
public void sort(List<Student> list)
{
Collections.sort(list, new NameTurn2());
}
}

import java.util.*;
public class Environment
{
private SortInterface sortInterface;
public void setSortInterface(SortInterface sortInterface)
{
this.sortInterface=sortInterface;
}
public void sort(List<Student> list)
{
this.sortInterface.sort(list);
}
}

import java.util.*;
public class DataTest
{
public static void main(String args[])
{
Student stu1=new Student();
stu1.setID(20120001);
stu1.setName("zhangsan");
stu1.setAge(21);

Student stu2=new Student();
stu2.setID(20120002);
stu2.setName("lisi");
stu2.setAge(22);

Student stu3=new Student();
stu3.setID(20120003);
stu3.setName("wangwu");
stu3.setAge(23);

Student stu4=new Student();
stu4.setID(20120004);
stu4.setName("liuliu");
stu4.setAge(24);

Student stu5=new Student();
stu5.setID(20120005);
stu5.setName("zhaoqi");
stu5.setAge(25);

Student stu6=new Student();
stu6.setID(20120006);
stu6.setName("张三");
stu6.setAge(23);

Student stu7=new Student();
stu7.setID(20120007);
stu7.setName("李四");
stu7.setAge(23);

Student stu8=new Student();
stu8.setID(20120008);
stu8.setName("zhangsan");
stu8.setAge(26);

Student stu9=new Student();
stu9.setID(20120009);
stu9.setName("zhangsan");
stu9.setAge(27);

List<Student>  list=new  LinkedList<Student>();
list.add(stu1);
list.add(stu2);
list.add(stu3);
list.add(stu4);
list.add(stu5);
list.add(stu6);
list.add(stu7);
list.add(stu8);
list.add(stu9);

Environment environment=new Environment();
environment.setSortInterface(new NameTurn());
environment.sort(list);
Iterator<Student> ite=list.iterator();
while(ite.hasNext())
{
Student stu=ite.next();
System.out.println(stu.getID()+" "+stu.getName()+" "+stu.getAge());
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐