黑马程序员技术交流社区

标题: list set 各子类如何使用总结 [打印本页]

作者: 宗士为    时间: 2012-5-12 16:11
标题: list set 各子类如何使用总结
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的子类, 同样使用哈希算法进行去重复.


作者: 索学超    时间: 2012-5-12 16:15
顶一个,谢Lz分享




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