interview-----java对象排序

 现有一个类person有三个属性,分别是name,age,sex。有一个List对象,保存了很多person对象的实例,请编写一个函数,对List里的实例进行排序。条件:18岁以上的人,排序顺序:性别,年龄,姓名全部降序。


第一感觉是数据库。。。

思路:对象排序

public class Person implements Comparable<Person>{
	private String name;
	private int age;
	private String sex ;
	public int compareTo(Person o) {
		if(this.sex.equals("男")&& o.getSex().equals("女")){
			return 1;
		}else if(this.sex.equals("女")&& o.getSex().equals("男")){
			return -1;
		}
		if(this.age > o.getAge())return 1;
		else if(this.age < o.getAge())return -1;
		
		return this.name.compareTo(o.getName()) ;
	}
	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 String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
}
List<Person> list = new ArrayList<Person>();
list.add(p1);
list.add(p2);
...

for(Person p : list)if(p.getAge()<=18)list.remove(p);

Collections.sort(list);
 


你可能感兴趣的:(java)