集合框架

java中的集合(广义)即collection(狭义)和map

Collection

Iterable: 只有Iterator和foreach方法

collection:集合(又称为容器)他与array的不同在于array容量固定,而它可保存一个可以动态增长的数据,注意它是一个接口,不能实例化,继承自Iterable

set: 无序号,故不能有重复数据

list: 有序,可存在重复数据,每个元素都有索引

queue: 保持先入先出的顺序

备注: 他们都是接口

--------------------------------------------------------------------------------------------------

接下来介绍一下常用的实现类:

List

ArrayList

传说中的动态数组,顾名思义,是一种基于数组的数据结构

特点:初始大小为4,当数据存满时扩容为当前数组容量的两倍,即创建一个当前数组两倍大小的数组,然后把数组元素一个一个地存入

LinkedList

基于链表的数据结构,而且是双向链表

对比:

ArrayList随机访问效率高,linkedList得移动指针,效率相对低

linkedList增删效率高,ArrayList得移动数据

备注: 链表是一种物理存储单元上非连续、非顺序的存储结构,逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据的数据域,另一个是存储下一个结点地址的指针域。 

Vector类似于ArrayList,区别在于他是线程安全的,即任意时刻都只有一个线程访问,相对的,访问他的速度比ArrayList慢

Set

hashSet

基于hash表,元素可为null

不可重复,无序

linkedHashSet

基于链表和哈希表

有序

treeSet

基于红黑树算法

有序

---------------------------------------------------------------------------------------------

Map

主要实现类为:

HashMap

HashTable

 

linkedHashMap

 

TreeMap

Map与set的关系:

Set集合就是由Map集合的Key组成

原文地址:https://www.cnblogs.com/yanze/p/9669187.html