码迷,mamicode.com
首页 > 编程语言 > 详细

java第八章:集合容器之Set接口

时间:2017-06-14 22:28:13      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:速度   ash   添加   new t   二叉树   equal   内容   对象   new   

                      Set接口(唯一,无序(添加顺序))

         实现类:HashSet (唯一,无序)                   TreeSet(唯一,有序(大小顺序))

            子类:LinkedHashSet(唯一,有序(添加顺序))

HashSet:采用哈希表的存储结构;在HashSet中添加元素,实现唯一性的原理:添加元素时候,会先调用Object中的hashcode()方法,计算哈希码,然后确定摆放的位置。如果哈希码不同,就不会调用Object中的equals()方法比较内容;如果哈希码相同,再调用equals()方法比较内容,内容相同了才能判断是同一个对象,不再添加相同的;

优点:查询,添加,删除速度快;缺点:无序

LinkedHashSet:是HashSet的子类,采用哈希表加链表存储结构,有序的(添加顺序)

TreeSet:采用二叉树(红黑树)的存储结构,有序的(大小顺序);底层是怎么实现排序的:默认是按照元素的自然顺序排列的,如果想按照某个属性排序,new TreeSet(无参构造);需要类实现implements Comparable(),重写其中的compare to(Object o)方法或者new TreeSet(Comparator c传一个比较器),自己构造一个比较器来实现implements Comparator()接口,重写其中的compare(Object o1 , Object o2)方法,

 

java第八章:集合容器之Set接口

标签:速度   ash   添加   new t   二叉树   equal   内容   对象   new   

原文地址:http://www.cnblogs.com/SXTzhaopengda/p/7010836.html

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