A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李宗玛 中级黑马   /  2014-7-14 17:46  /  1501 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

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

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

4 个回复

倒序浏览
学习了              
回复 使用道具 举报
路过!看看
回复 使用道具 举报
补充一点:HashSet的hashcode底层是哈希算法,也可自定义,通过哈希值判断存放的地址。地址上如果之前有元素存在(即哈希值相同),才会调用equals比较两者的值
回复 使用道具 举报
clf900630 来自手机 初级黑马 2014-7-16 14:23:43
报纸
我想说set集合无序 不可重复的应该
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马