1-1.数据结构---栈
栈:先进后出。
存储元素到集合中叫入栈,也叫压栈。
将元素从集合中取出叫出栈,也叫弹栈。
存入元素的顺序和取出元素的顺序是相反的。
1-2.数据结构---队列
队列:先进先出。
队列的出口和入口在集合的两侧,故和平时排队一样先进的先出。
1-3.数据结构---数组
特点:查询快,增删慢。
因为数组的地址相连的,我们通过数组的首地址可以找到数组,通过索引可以快速查找到某个元素,即查询快。
因为数组的长度是固定的,所以若要增加/删除一个元素,必须创建新的数组,再把原来的数组复制进来,即增删慢。
1-4.数据结构---链表
特点:查询慢,增删快。
链表中的地址不是相连的,每次查询元素都是从头开始查询的,即查询慢。
在链表结构,增加/删除一个元素,对链表的整体结构没有影响,即增删快。
在链表中,每一个元素也被称作一个节点。
一个节点包含了一个数据源(存储数组),两个指针域(存储地址)。
单向链表:链表中只有一个链子,不能保证元素的顺序(存入元素的顺序和取出元素的顺序可能不一致)。
双向链表:链表中有两条链子,有一条链子是专门记录元素的顺序的,是一个有序的集合。
1-5.数据结构---红黑树
二叉树:分支不能超过两个的树。
排序树/查找树:在二叉树的基础上,元素是有大小顺序的,左子树小,右子树大。
平衡树:左子树和右子树的的孩子数相等。
红黑树:
特点:趋近于平衡树,查询速度非常快,查询叶子节点最大次数和最小次数不能超过2倍。
约束:
1).节点可以是红色或黑色的。
2).根节点是黑色的。
3).叶子节点(空节点)是黑色的。
4).每个红色节点的子节点都是红色的。
5).任何一个节点到器每一个叶子节点的所有路上黑色的节点数相同。
2-1.List集合
java.util.List extends Collection接口
List接口的特点:
1).是一个有序的集合,存储元素和取出元素的顺序是一致的。
2).有索引,包含了一些带有索引的方法。
3).允许存储重复的元素。
List接口中带有索引的方法(特有):
1).public void add(int index,E element);
功能:将指定元素添加到该集合中的指定位置上。
2).public E get(int index);
功能:返回返回集合中指定位置的元素。
3).public E remove(int index);
功能:移除列表中的指定位置的元素,返回的是被移除的元素。
4).public E set(int index,E element);
功能:用指定的元素替换集合中指定位置的元素,返回值是被替换的元素。
注意:在操作索引时,一定需要防止索引越界异常(IndexOutOfBoundsException)。
· 数组越界异常(ArrayIndexOutOfBoundsException)。
· 字符串索引越界异常(StringIndexOutOfBoundsException)。
2-2.ArrayList集合
java.util.ArrayList集合数据存储结构是数组结构,增删慢,查询快。
2-3.LinkedList集合
java.util.LinkkedList集合 implements List接口
LikedList集合的特点:
1).底层是一个链表结构:查询慢,增删快。
2).里边包含大量操作首尾元素的方法。
注意:使用LinkedList集合的特有方法时,不能使用多态。
常用方法:
1).public void addFirst(E e):
功能:将指定元素插入到此列表的开头。
2).public void addLast(E e):
功能:将指定元素插入到此列表的结尾。
3).public void push(E e):
功能:将元素推入此列表所表示的堆栈(此功能等效于public void addFirst(E e))。
4).public E getFirst();
功能:返回该列表的第一个元素。
5).
public E getLast();
功能:返回该列表的最后一个元素。
6).
public E removeFirst();
功能:移除并返回该列表的第一个元素。
7).
public E getLast();
功能:移除并返回返回该列表的最后一个元素。
8).public E pop();
功能:从列表所示的堆栈中弹出一个元素(功能等效于public E removeFirst())。
9).public boolean isEmpty();
功能:若此列表不包含元素,则返回ture。
2-4.Vector集合
可以实现增长的对象数组。