集合复习comparable和comparator

版权声明:未经博主同意,禁止转载,联系方式qq2928013321 https://blog.csdn.net/weixin_42130471/article/details/83152046
package comparable;

import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;

import listtomap.Student;

public class compare {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student stu1=new Student(1,"zhangsan",22);
		Student stu2=new Student(2,"lisi",24);
		Student stu3=new Student(3,"zhaowu",23);
		Student stu4=new Student(4,"wanba",22);
		Set<Student> set  = new TreeSet<>(
//				如果要实现内部比较器可加上如下注释语句
//				new Comparator<Student>() {
//
//			@Override
//			public int compare(Student arg0, Student arg1) {
//				// TODO Auto-generated method stub
//				return arg0.getName().compareTo(arg1.getName());
//			}
//		}
		);
		set.add(stu1);
		set.add(stu2);
		set.add(stu3);
		set.add(stu4);
		for(Student stu:set) {
			System.out.println(stu);
		}
	}

}

Student 类:

package listtomap;

public class Student implements Comparable<Student>{
	private int sno;
	private String name;
	private int age;
	
	public Student(int sno, String name, int age) {
		super();
		this.sno = sno;
		this.name = name;
		this.age = age;
	}

	@Override
	public String toString() {
		return "Student [sno=" + sno + ", name=" + name + ", age=" + age + "]";
	}

	public int getSno() {
		return sno;
	}

	public void setSno(int sno) {
		this.sno = sno;
	}

	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 static void main(String[] args) {
		// TODO Auto-generated method stub

	}

	@Override
	public int compareTo(Student arg0) {
		// TODO Auto-generated method stub
		if(this.age==arg0.age) {
			return this.sno-arg0.sno;
		}else {
			return this.age-arg0.age;
		}
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_42130471/article/details/83152046