2. TreeSet存类对象(Comparable接口)
TreeSet是无序的 如果需要按照类对象的属性比较排序 需要实现Comparable接口
Comparable接口下有compareTo抽象方法
需要依照需求重写抽象方法后TreeSet集合才能按顺序插入类对象
package com.qfedu.a_treeset;
import java.util.Set;
import java.util.TreeSet;
class Dog implements Comparable<Dog>{
String name;
int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public int compareTo(Dog o) {
3. 使用比较器将数据存储到TreeSet中
比较器接口Comparator
首先创建一个类存储数据
class Student {
String name;
int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
创建一个类继承比较器
重写Comparator中抽象方法Compare
class MyComparator implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
int num = o1.age - o2.age;
return num;
}
}
创建一个以类名为泛型的Set集合,子类的引用括号里添加Comparator属性
Set<Student> students = new TreeSet<>(new MyComparator());
package com.qfedu.b_comparator;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
class Student {
String name;
int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
class MyComparator implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
int num = o1.age - o2.age;
return num;
}
}
public class Demo1 {
public static void main(String[] args) {