JDK中集合类

数据结构:是数据存储时各个元素之间的关系。数组

分4种基本类型:集合、线性结构、树形结构、图状结构;安全

JDK中的集合类:List、Set、Queue、Stack、Map数据结构

基本特色多线程

一、List/Set/Queue都继承Collection接口,Map是单独的接口线程

二、List存储类型一致数据能够保证存储的顺序,但不保证元素是否重复;code

Set存储类型一致的数据,不保证数据的存储顺序,但保证存储的元素惟一;对象

Queue保证数据先进先出的顺序;排序

Map存储key-value类型的数据,key不重复(若重复会覆盖原key对应的value值).继承

 

实现类接口

ArrayList:实现List接口,是动态数组实现的顺序表。数组实现,访问速度快,占用空间小,不适合频繁的增删节点。

Vector:实现List接口,动态数组实现,元素有序,线程同步的

LinkedList:实现List接口,是基于链表实现的顺序表。链表实现,适合长度不固定、元素增删频繁时使用。

HashSet:存储元素可自动去重复,无序访问,存储对象必须实现hashcode()方法(这就是为何不能存储基本数据类型)

TreeSet:可对元素去重,保证元素的插入顺序,可对元素排序(保存的元素须要实现Comparable接口,重写compareTo方法)

HashMap:实现Map接口,是由数组+链表实现的(依据key的hash值决定在数组上的存储位置,若hash冲突时保存到链表子节点上)

WeakHashMap:继承AbstarctMap,实现Map接口;key对象弱引用

LinkedHashMap:继承HashMap,会保存数据的插入顺序

ConcurrentHashMap:实现Map接口,自带同步锁(线程安全,在多线程状况下能够使用)

HashTable:线程安全的map

TreeMap:继承AbstarctMap,实现Map接口;能够key值自动排序

Stack(栈):继承Vector;元素后进先出(有入栈和出栈操做);线程安全

Queue(队列):继承List接口;可进行出队、入队操做(LinkedList也能够实现)

ConcurrentLinkedQueue

SynchronizedQueue

BlockingQueue:阻塞队列,继承Queue;线程安全(可执行先进先出或后进先出操做);

子类还有ArrayBlockingQueue、LinkedBlockingQueue、DelayQueue、PriorityBlockingQueue、

SynchronousQueue

BlockingDeque:双端阻塞队列,继承BlockingQueue;

实现类有LinkedBlockingDeque

TransferQueue:继承BlockingQueue;

实现类有LinkedTransferQueue

相关文章
相关标签/搜索