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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马