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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夜空中的星 中级黑马   /  2015-1-2 01:10  /  1826 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Collection接口的两个子类接口   List和Set接口
Set
        特点:元素无序  是唯一的
        这里的顺序指的是存储和取出的顺序
HashSet:
        不保证元素的迭代顺序   不保证该顺序恒久不变
        它是如何保证的呢:HashSet的底层数据结构是哈希表
                           它依赖两个方法:hashCode()和equals()
                        顺序:先判断hashCode()值是否相同
                                ·如果相同:继续走equals()方法
                                        a.true  说明元素重复,不添加到集合
                                        b.false  说明元素不重复,添加到集合
                                ·不同        直接添加到集合
如何重写hashCode和equals方法呢
        ·hashCode():
                把对象的所有成员变量值相加即可
                如果是基本类型,就加值,如果是引用类型,就加哈希值
        ·equals():
                1.this == obj
                2.!(obj instanceof Student)
                3.强转,所有成员变量的值比较,基本类型用==   引用类型用equals
Collection体现的集合总结
        Collection  (收集,采集)----层次结构中的根接口
特点:
1.Collection 表示一组对象,这些对象也称为 collection 的元素。
2.一些 collection 允许有重复的元素,而另一些则不允许。
3.一些 collection 是有序的,而另一些则是无序的。
4.JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,
        并在需要最大普遍性的地方操作这些 collection。
两个儿子  list和set
        ·List包括ArrayList ---  底层数据结构是数组,查询快,增删慢
                                线程不安全  但是效率高
                LinkedList ---  底层数据结构是链表 查询慢,增删快
                                线程也不安全  效率也高
                Vector  ---  底层数据结构是数组,查询快,增删慢
                                线程安全  效率低
        ·Set  唯一  包括HashSet和TreeSet
                HashSet   底层数据结构是哈希表,通过hashCode()和equals方法保证元素的唯一性
                TreeSet   底层数据结构是二叉树   通过返回值是否是0,来判断元素是否重复

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

8 个回复

倒序浏览
本帖最后由 赵越海 于 2016-7-8 17:30 编辑

         .
回复 使用道具 举报
lz 有几个问题 拜托解答一下:)

hashCode() : 毕老师基本类型是任意乘个几十的系数,好像尽量避免巧合,不知有用否?如何验证?
Vector  好像是说查询和增删都巨慢,被ArrayList替代,唯一好处是线程同步?不知还有没人用?
回复 使用道具 举报
不错,值得收藏。
回复 使用道具 举报
总结的很不错。赞一个
回复 使用道具 举报
分享的很好,很受益!
回复 使用道具 举报
这个是哪一章节的,
回复 使用道具 举报
总结得不错
回复 使用道具 举报
不错,顶一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马