美文网首页
Java--TreeSet的使用和底层实现

Java--TreeSet的使用和底层实现

作者: 李赫尔南 | 来源:发表于2022-10-29 09:28 被阅读0次

      TreeSet底层实际是用TreeMap实现的,内部维持了一个简化版的TreeMap,通过key来存储Set的元素。TreeSet内部需要对存储的元素进行排序,因此,我们对应的类需要实现Comparable接口。这样,才能根据compareTo()方法比较对象之间的大小,才能进行内部排序。

    【示例】TreeSet和Comparable接口的使用

    public class Test {
        public static void main(String[] args) {
            User u1 = new User(1001, "李赫尔南", 18);
            User u2 = new User(2001, "李先生", 5);
            Set<User> set = new TreeSet<User>();
            set.add(u1);
            set.add(u2);
        }
    }
    class User implements Comparable<User> {
        int id;
        String uname;
        int age;
    
        public User(int id, String uname, int age) {
            this.id = id;
            this.uname = uname;
            this.age = age;
        }
        /**
          *返回e表示 this == obj 返回正数表示 this > obj 返回负数表示 this < obj
          */
        @Override
        public int compareTo(User o) {
            if (this.id > o.id) {
                return 1;
            } else if (this.id < o.id) {
                return -1;
            } else {
                return 0;
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:Java--TreeSet的使用和底层实现

          本文链接:https://www.haomeiwen.com/subject/ljyttdtx.html