Set TreeSet

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;
        }
    }

}
原文地址:https://www.cnblogs.com/han6/p/11341704.html