Java TreeSet集合 比较器排序Comparator的使用

java

比较器排序Comparator的使用

  • 存储学生对象,并遍历,创建TreeSet集合使用带参构造方法

  • 要求,按照学生年龄从小到大排序,如果年龄相同,则按照姓名的字母循序排序

结论

  • 用TreeSet集合存储自定义对象,代参构造方法使用的是“比较器排序”对元素进行排序的;
  • 比较器排序,就是让集合构造方法接收Comparator实现类对象,重写compareTo(T O1,tO2)方法; 3、重写方法时,一定注意排序规则,必须按照要求的主要条件和次要条件来写

//TreeSetDemo.java

/*比较器排序Comparator的使用

1、存储学生对象,并遍历,创建TreeSet集合使用带参构造方法

2、要求,按照学生年龄从小到大排序,如果年龄相同,则按照姓名的字母循序排序

结论

1、用TreeSet集合存储自定义对象,代参构造方法使用的是“比较器排序”对元素进行排序的;

2、比较器排序,就是让集合构造方法接收Comparator实现类对象,重写compareTo(T O1,tO2)方法;

3、重写方法时,一定注意排序规则,必须按照要求的主要条件和次要条件来写

*

* */

import java.util.Comparator;

import java.util.Iterator;

import java.util.TreeSet;

public class TreeSetDemo {

public static void main(String[] args) {

//创建TreeSet集合对象

TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {

@Override

public int compare(Student s1, Student s2) {

int num = s1.getAge() - s2.getAge();//按照年龄有小到大排序

//如果年龄相同,则根据姓名的字母循序排序(采用三元运算符进行比较)

int num2 = num == 0 ? s1.getName().compareTo(s2.getName()) : num;

return num2;

}

});

//创建学生对象

Student s1 = new Student("linqingxia", 35);

Student s2 = new Student("zhangmanyu", 30);

Student s3 = new Student("wangzuxian", 36);

Student s4 = new Student("liudehua", 30);

Student s5 = new Student("zhourunfa", 34);

Student s6 = new Student("zhourunfa", 34);

//将学生添加到集合

ts.add(s1);

ts.add(s2);

ts.add(s3);

ts.add(s4);

ts.add(s5);

ts.add(s6);

//采用迭代器遍历集合,

/* Iterator<Student> it = ts.iterator();

while(it.hasNext()){

Student s = it.next();

System.out.println(s.getName()+":"+s.getAge());

}*/

//采用增强for遍历集合

for (Student s : ts) {

System.out.println(s.getName()+":"+s.getAge());

}

}

}

 Student.java

public class Student {

//定义成员变量

private String name;

private int age;

/*无参构造方法

* 1、与类同名,且没有返回值,甚至连void都没有

* 2、构造出类的实例,且对实例进行初始化

* 3、用new创建对象,且完成对象进行初始化

* */

public Student() {

}

//有参构造方法

public Student(String name, int age) {

this.name = name;

this.age = age;

}

public void setName(String name) {

this.name = name;

}

public void setAge(int age) {

this.age = age;

}

public String getName(){

return name;

}

public int getAge(){

return age;

}

}

以上是 Java TreeSet集合 比较器排序Comparator的使用 的全部内容, 来源链接: utcz.com/z/390922.html

回到顶部