此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

集合框架

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组成

 

 

posted @ 2018-09-18 15:29  炎泽  阅读(243)  评论(0编辑  收藏  举报