JavaJava基础之集合

自我在读一本叫做《java主旨技术》的一本书,很厚很全,适合当一本参考书。

今天看了第13章java集合,重新整理了一下思路,也有不可胜数新的收获。


好了本文开始,首回探望集合,我脑子里反映的如故{a,b,c}那些事物,那是数学里常说的联谊。其实在java里,集合是指可以容纳数据的一种结构,它的归类有过多。

一般来说图所示:

Java 1

集合

聚集都会延续Collection这一个接口,那个接口会提供部分相比基本的章程比如add(),remove(),size()这类。

自己先列一个目录,这个是自个儿本次看的情节:

  1. Queue ArrayQueue
  2. Deque ArrayDeque
  3. List LinkedList ArrayList
  4. Set HashSet TreeSet
  5. Map HashMap TreeMap
  6. Stack Vector Hashtable

Queue ArrayQueue

那是最广泛的队列,遵守先进先出的尺度,前一个线程安全,后一个线程不安全。

Deque ArrayDeque

那七个是双向队列,四头都足以开展进出的操作,前一个线程安全,后一个线程不安全。

List LinkedList ArrayList

List是列表接口,那两个都持续那几个接口.

首先个是链表结构,而且是双链表,每个元素都含有着数量和内外四个元素的地方,那种数据结构使得添加删减操作便捷,但是查找较慢,因为老是搜寻都要从第四个要素重新开首找。

第四个是数组布局,而且是动态数组,不像array[]不能不安装一个长短
(具体是什么操作的事后研商吗!),那样的协会查找相比快,但是插入删除那类操作会使全部数据都要拓展岗位的变更,所以不切合举办插队删除。

Set HashSet TreeSet

Set接口的关键特征就是因素是无法再次的。

HashSet是线程不安全的,对应的是HashTable,那么些线程安全。Hash也称作散列,散列的益处就是可以高速查询某个元素,具体怎么会快原来我直接都是夏虫语冰,直到遇见那几个网站VisuAlgo
,可以自己感受一下。
TreeSet是HashSet的升级版,散列表是无连串表,每便查询的时候下一个元素都不确定,TreeSet就化解了这么些题材,它通过红黑树,每趟添日元素都会调整那棵树,(会记录那个插入顺序???怎么搞的~和事先散列表的界别)

Map HashMap TreeMap

Map是键值对应数据结构的接口

HashMap是我们相比常用的一种数据类型,键值对应的数据结构,也可以透过Hash来神速搜索。

TreeMap和TreeSet类似,在HashMap的底蕴上加码了树,可以记录添加顺序。

Stack Vector Hashtable

剩下那三个实际是Java中期时用的数据结构,他们都是线程安全的

Stack就是大家常说的栈结构,先进后出。

Vector是线程安全的可增加数组,和ArrayList类似,在二十四线程情形下可以用这几个。

HashTable相当于线程安全的HashMap,HashTable继承相比较陈旧的Dictionary类,一般情况下HashMap相比较不错。还有某些不一就是HashMap的key和value都可以为null,而HashTable是不容许的。

相关文章