package com.dh.learn.collection; import java.util.Set; import java.util.TreeSet; public class LearnTreeSet { public static void main(String[] args) { //TreeSet会按照元素顺序排序。是用TreeMap的key实现的。 // HashSet判断元素是否一致: hashCode + equals // TreeSet判断元素是否一致:compareTo 返回结果是0 Set<Person> set = new TreeSet<>(); set.add(new Person("dh1", 12)); set.add(new Person("dh2", 12)); // dh2-12 由于compareTo返回是0 所以TreeSet将其视为一个元素 set.add(new Person("dh2", 12)); set.add(new Person("dh2", 13)); set.add(new Person("dh4", 12)); System.out.println(set); } static class Person implements Comparable { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return name + "===" + age; } @Override public int compareTo(Object o) { Person p2 = (Person) o; int x = name.compareTo(p2.name); if (x == 0) { return age - p2.age; } return x; } } }