集合複習comparable和comparator
阿新 • • 發佈:2018-11-09
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; } } }