黑马程序员技术交流社区

标题: 关于Collection接口下的这些集合类的特点总结 [打印本页]

作者: 黑马乔荣柱    时间: 2012-10-15 22:49
标题: 关于Collection接口下的这些集合类的特点总结
List 有顺序  可重复    get   set这些方法是List集合特有的.

        |-----ArrayList  这个类在开发中使用的最多
               
                        底层使用数组实现,每次增长50%  查找效率高  插入与删除操作效率比较低
                        ArrayList是线程不安全

        |-----LinkedList
                       
                        底层使用链表实现   插入与删除效率比较高。
                        这个类中提供了对头尾元素进行操作的比较方便的方法.
                        LinkedList是线程不安全


        |-----Vector
                       
                        底层使用数组实现 每次增长100%
                        线程安全的.
                        无论执行查找还是添加与删除操作效率都比较低.


Set 无顺序,不可重复
        |-----HashSet  这个在开发中用的比较多
                       
                        底层实现使用Hash表  HashSet维护元素唯一性是使用元素的hashCode与equals方法.
                       

        |-----LinkedHashSet
                         
                        它是一个有顺序有Set集合,如果要保证添加的顺序与取出的顺序一致可以使用这个Set集合.       

        |-----TreeSet

                        它的底层实现使用二叉树  
                       
                        TreeSet维护元素的唯一性使用的是什么?

                        1.使用元素自然顺序
                                维护元素的唯一性使用的Comparable接口中的compareTo方法进行维护
                                如果这个方法返回0,代表重复

                        2.使用比较器
                                维护元素的唯一性使用的Comparator接口中的compare方法
                                如果这个方法返回0,代表重复

                                要注意的是使用比较器时,必须在创建TreeSet对象时通过构造方法进行传参.


        对于TreeSet与HashSet在开发中怎样选择?

        如果在开发中想要对集合中的元素进行排序,那么使用TreeSet





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