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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宗士为 中级黑马   /  2012-5-12 16:11  /  1975 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

List集合的实现类
        1.ArrayList
                数组实现, 查找快, 增删慢
        2.LinkedList
                链表实现, 增删快, 查找慢
        3.Vector
                原理和ArrayList相同, 线程安全, 效率低


       
set集合的实现类
         a.HashSet
                去重复, 速度快
                HashSet在存储元素的时候, 先调用对象的hashCode方法, 计算一个哈希值, 然后在集合中查找是否有哈希值相同的对象
                        如果没有哈希值相同的对象, 直接存入
                        如果有哈希值相同的对象, 则和哈希值相同的对象进行equals比较
                                equals比较结果为false就存入
                                equals比较结果为true则不存
                如果我们想在HashSet中存储自定义对象, 并且去重复, 那么这个自定义的类必须重写hashCode和equals方法.
        b.TreeSet
                去重复, 排序
                在向TreeSet中存储元素的时候, TreeSet会使用指定的比较算法对存储元素进行排序, 内部以二叉树形式进行存储.
                指定比较算法的方式:
                        自然顺序: 在类上实现Comparable接口, 重写compareTo方法, 在方法中定义比较算法.
                        比较器顺序: 定义类实现Comparator接口, 重写compare方法, 创建比较器对象, 传入TreeSet构造函数.
                如果我们想在TreeSet中存储自定义对象, 并且排序, 要么这个自定义的类实现Comparable接口, 要么在TreeSet中传入Comparator.
        c.LinkedHashSet
                去重复, 保留存储顺序
                是HashSet的子类, 同样使用哈希算法进行去重复.

评分

参与人数 1黑马币 +10 收起 理由
贠(yun)靖 + 10 赞一个!

查看全部评分

1 个回复

倒序浏览
顶一个,谢Lz分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马