分类:
一般将数据结构分为两大类:线性数据结构和非线性数据结构。 线性数据结构有线性表、栈、队列、串、数组和文件;非线性数据结构有树和图。
线性表的逻辑结构是:n个数据元素的有限序列:
(a1, a2,a3,…an),n为线性表的长度(n≥0),n=0的表称为空表。数据元素呈线性关系。必存在唯一的称为“第一个”的数据元素;必存在唯一的称为“最后一个”的数据元素;除第一个元素外,每个元素都有且只有一个前驱元素;除最后一个元素外,每个元素都有且只有一个后继元素。所有数据元素在同一个线性表中必须是相同的数据类型。
线性表按其存储结构可分为顺序表和链表。用顺序存储结构存储的线性表称为顺序表;用链式存储结构存储的线性表称为链表。将线性表中的数据元素依次存放在某个存储区域中,所形成的表称为顺序表。一维数组就是用顺序方式存储的线性表。ArrayList就相当于顺序表。LinkedList就相当于链表。
结构图:
一、数组(Array)
数组: 它是一个用来存储同一个数据类型多个元素的一个容器
数组长度是固定的,
数组中存储的元素的数据类型要求一致;
格式:
格式1:
数据类型[ ] 数组名 = new 数据类型 [数组长度];
格式2:
数据类型[ ] 数组名 = new 数据类型[ ]{元素值1,元素值2,..};
格式3:
数据类型[ ] 数组名 = {元素值1,元素值2,..};
数组操作的常见异常:
NullPointerException: 空指针异常
已经不指向堆内存的实体了, 却还在访问堆内存实体中的数据
ArrayIndexOutOfBoundsException: 数组角标越界异常
当访问的索引,超过了数组索引最大值的时候
-------------------------------------------------------------------------------------------------------------------------
二维数组:
它是一个包含多个一维数组的数组
特点:
二维数组中的元素都是一维数组
格式:
格式1:
数据类型[][] 数组名 = new 数据类型[m][n];
m: 代表二维数组中一维数组的个数
n: 代表每个一维数组中元素的个数
格式2:
数据类型[ ][ ] 数组名 = new 数据类型 [m][ ];
m: 代表二维数组中一维数组的个数
每一个一维数组可以赋值来确定数组长度
格式3:
数据类型[][] 数组名 = new 数据类型[][]{{元素值1,元素值2,..},{元素值1,元素值2,..},..};
简化形式:
数据类型[][] 数组名 = {{元素值1,元素值2,..},{元素值1,元素值2,..},..};
数组相关操作: