Java中的常用数据结构和List集合的基础介绍

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集合

可以实现增长的对象数组。

 

你可能感兴趣的:(Java中的常用数据结构和List集合的基础介绍)