黑马程序员技术交流社区

标题: set集合 [打印本页]

作者: 李宗玛    时间: 2014-7-14 17:46
标题: set集合
Set集合:元素是有序的,元素值唯一,不允许重复。
   HashSet:底层数据结构式哈希表,是通过元素的hashcode和equals来保证元素的唯一性。
            如果元素的hashcode值相同,才会判断equals是否为true;
            如果元素的hashcode的值不同,不会调用equals。
            
            对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。

   TreeSet: 可以对Set集合中的元素进行自然排序。底层数据是二叉树
               
             排序方式一: 要让自定义对象是实现 Comparable接口,强制让对象具有比较性。,排序时当主要条件相同时,一定要判断下次要条件。
                         然后重写compareTo()方法。
                          如果想要按原样顺序输出,则让compareTo()方法返回 1。

             排序方式二:当元素自身不具备比较性时,或者具备的比较性不是所需要的,这时就需要让集合自身具备比较性。
                         在集合初始化的时候,就让集合具有比较性。
                         定义比较器,将比较器作为参数传递给TreeSet集合的构造函数。

作者: 沐子松/kf    时间: 2014-7-14 19:56
学习了              
作者: 黄宝宝    时间: 2014-7-14 21:06
路过!看看
作者: 师偃    时间: 2014-7-15 00:07
补充一点:HashSet的hashcode底层是哈希算法,也可自定义,通过哈希值判断存放的地址。地址上如果之前有元素存在(即哈希值相同),才会调用equals比较两者的值
作者: clf900630    时间: 2014-7-16 14:23
我想说set集合无序 不可重复的应该




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2