黑马程序员技术交流社区

标题: 关于集合的体系 [打印本页]

作者: 田宇鹤    时间: 2012-11-25 20:01
标题: 关于集合的体系

        Collection的体系结构
                Collection
                        |--List 元素可以重复,有序
                                |--ArrayList
                                        底层数据结构是数组,查询快,增删慢
                                        线程不安全,效率高。
                                |--Vector
                                        底层数据结构是数组,查询快,增删慢
                                        线程安全,效率低。
                                |--LinkedList
                                        底层数据结构是链表,查询慢,增删快
                                        线程不安全,效率高。
                        |--Set 元素唯一,无序
                                |--HashSet
                                        底层数据结构是哈希表。
                                        如果保证元素唯一性的呢?
                                                它依赖于两个方法:hashCode和equals。
                                                首先,判断哈希值是否相同,如果不同,就直接添加到集合中。
                                                如果相同,在进入equals方法判断,
                                                        如果返回值是false,就添加进集合。
                                                        如果返回值是true,说明是重复元素,不添加到集合中。
                                |--TreeSet
                                        底层数据结构是二叉树。
                                        如果保证元素唯一性的呢?
                                                根据Comparable接口的compareTo方法或者Comparator接口的compare方法的返回值是否为0,
                                                来确定是否是重复元素。如果是0,就不添加元素。

                                                排序:
                                                让元素本身具备比较性:Comparable -- compareTo
                                                让集合具备比较性:Comparator -- compare


作者: 许庭洲    时间: 2012-11-25 21:38
值得学习ing!




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