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

java基础(七)--- set

时间:2015-06-03 15:32:07      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

 

Set

(1)Set集合的特点
无序(存入和取出顺序),唯一


(2)HashSet集合
  A:底层数据结构是哈希表(是一个元素为链表的数组)
  B:哈希表底层依赖两个方法:hashCode()和equals()
    执行顺序:
    首先比较哈希值是否相同
    相同:继续执行equals()方法
    返回true:元素重复了,不添加
    返回false:直接把元素添加到集合
    不同:就直接把元素添加到集合
   C:如何保证元素唯一性的呢?
  由hashCode()和equals()保证的

注意:如果需要把某个类的对象保存到HashSet集合中,重写equals()方法和hashCode()方法是,尽量保证对象通过equals()方法返回值为true时,hashCode的返回值也为true;

   HashSet中每个能存储元素的“槽位”slot通常被称为“桶”bucket,如果有多个元素的hashCode值相同,但equals()方法返回false。就需要在一个“桶”里放多个元素,这样会导致性能下降;

(3)TreeSet集合
  A:底层数据结构是红黑树(是一个自平衡的二叉树)
  B:保证元素的排序方式
    a:自然排序(元素具备比较性)
      让元素所属的类实现Comparable接口
    b:比较器排序(集合具备比较性)
      让集合构造方法接收Comparator的实现类对象

 

java基础(七)--- set

标签:

原文地址:http://www.cnblogs.com/judylucky/p/4549036.html

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