Demo:
bean:
public class Student {
private String name;
private int age;
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.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;
}
public Student() {
super();
}
public Student(String name, int age, int id) {
super();
this.name = name;
this.age = age;
this.id = id;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", id=" + id + "]";
}
}
比较的逻辑:
import java.util.Comparator;
//实现学生数据//按照id 3 1 2 0 4排序
public class StudentComparator3 implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
//保证3在最前面
if (o1.getId() == 3) {
return -1;
}
if(o2.getId() == 3){
return 1;
}
//保证4在最后面
if (o1.getId() == 4) {
return 1;
}
if (o2.getId() == 4) {
return -1;
}
//保证1在3后面
if (o1.getId() == 1) {
return -1;
}
if (o2.getId() == 1) {
return 1;
}
//保证0在4前面
if (o1.getId() == 0) {
return 1;
}
if (o2.getId() == 0) {
return -1;
}
return 0;
}
}
import java.util.Comparator;
//实现学生数据升序排列的比较器
public class StudentComparator1 implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
if (o1.getAge() > o2.getAge()) {
return 1;
}
if (o1.getAge() < o2.getAge()) {
return -1;
}
if (o1.getName().compareTo(o2.getName()) > 0) {
return 1;
}
if (o1.getName().compareTo(o2.getName()) < 0) {
return -1;
}
return 0;
}
}
main方法:
import java.util.*;
public class TreeSetTest {
public static void test() {
// 创建set对象,让set对象使用升序排列的比较器
Set<Student> set = new TreeSet<Student>(new StudentComparator1());
Student s0 = new Student("aa", 13, 0);
Student s1 = new Student("aa", 12, 1);
Student s2 = new Student("bb", 11, 2);
Student s3 = new Student("bb", 17, 3);
Student s4 = new Student("ee", 18, 4);
set.add(s0);
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
Iterator<Student> it = set.iterator();
while (it.hasNext()) {
Student stu = it.next();
System.out.println(stu);
}
System.out.println("=============================================");
// 创建set1对象,让set对象使用降序排列的比较器
Set<Student> set1 = new TreeSet<Student>(new StudentComparator3());
set1.add(s0);
set1.add(s1);
set1.add(s2);
set1.add(s3);
set1.add(s4);
for (Student student : set1) {
System.out.println(student);
}
}
public static void main(String[] args) {
test();
}
}
希望对你有帮助,祝你有一个好心情,加油!
若有错误、不全、可优化的点,欢迎纠正与补充;转载请注明出处!