对list集合中的指定元素进行比较

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());
		}
		
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值