黑马程序员技术交流社区
标题: 集合知识的简单总结 [打印本页]
作者: 丹霞似锦 时间: 2016-7-28 07:21
标题: 集合知识的简单总结
集合
|--Collection(单列)
|--List(存取有序,元素可重复)
|--ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
|--Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
|--LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
|--Set(存取无序,元素唯一)
|--HashSet
底层数据结构是哈希表。
线程不安全,效率高
怎么保证唯一性的呢?
它依赖两个方法:hashCode()和equals()
顺序:
首先判断hashCode()值是否相同。
同:继续走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。
|--TreeSet
底层数据结构是二叉树。
线程不安全,效率高。
怎么保证唯一性的呢?是根据返回是否是0。 (需要重写Comparator接口中的compare方法)
怎么保证排序的呢?两种方式
自然排序(元素具备比较性)
实现Comparable接口,重写compareTo()方法
比较器排序(集合具备比较性)
实现Comparator接口,重写compara()方法
|--Map(双列 底层结构是针对键有效,跟值无关)
|--HashMap
底层数据结构是哈希表。
线程不安全,效率高。
怎么保证唯一性的呢?
它依赖两个方法:hashCode()和equals()
顺序:
首先判断hashCode()值是否相同。
同:继续走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。
|--Hashtable
底层数据结构是哈希表。
线程安全,效率低。
怎么保证唯一性的呢?
它依赖两个方法:hashCode()和equals()
顺序:
首先判断hashCode()值是否相同。
同:继续走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。
|--TreeMap
底层数据结构是二叉树。
线程不安全,效率高。
怎么保证唯一性的呢?是根据返回是否是0。 (需要重写Comparator接口中的compare方法)
怎么保证排序的呢?两种方式
自然排序(元素具备比较性)
实现Comparable接口,重写compareTo()方法
比较器排序(集合具备比较性)
实现Comparator接口,重写compara()方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |