码迷,mamicode.com
首页 > 其他好文 > 详细

HashSet与TreeSet

时间:2019-01-09 23:36:29      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:调用   不同   new t   size   实现   覆写   return   哈希表   好的   

HashSet:(去重原理:hashCode,equals)
哈希表实现,数据无序;
不同步;
元素可以为null,但最多只能有一个;
当向HashSet中存入一个元素时,HashSet会调用该对象的hashCode方法来得到该对象的hash值,然后根据hash值决定该对象在HashSet中的存储位置。


TreeSet:(去重原理:compareTo)
二叉树实现,数据自动排序好的,不允许放入null值;
TreeSet是SortedSet接口的唯一实现类,TreeSet可以确保集合元素处于排序状态;
TreeSet支持两种排序方式,自然排序和定制排序,其中自然排序为默认排序方式;
类实现Comparable接口,覆写其compareTo方法,如果compareTo方法返回0,说明是重复的,如果是负数,则往前面排,如果是正数,则往后面排。

代码示例:
    public static void main(String[] args) {

        Set<Person> set = new TreeSet<Person>();
        Person p1 = new Person();
        Person p2 = new Person();
        p1.setAge(1);
        p2.setAge(1);
        set.add(p1);
        set.add(p2);
        System.out.println(set2.size());
    }
    
    static class Person implements Comparable {
        
        private Integer age;
        public Integer getAge() {
            return age;
        }

        public void setAge(Integer age) {
            this.age = age;
        }

        @Override
        public int compareTo(Object o) {
            return this.age - ((Person)o).getAge();
        }
        
    }
}

HashSet与TreeSet

标签:调用   不同   new t   size   实现   覆写   return   哈希表   好的   

原文地址:https://www.cnblogs.com/yuanfei1110111/p/10247312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!