Java中的經常使用數據結構和List集合的基礎介紹

1-1.數據結構---棧

棧:先進後出。java

存儲元素到集合中叫入棧,也叫壓棧。數組

將元素從集合中取出叫出棧,也叫彈棧。數據結構

存入元素的順序和取出元素的順序是相反的。指針

1-2.數據結構---隊列

隊列:先進先出。對象

隊列的出口和入口在集合的兩側,故和平時排隊同樣先進的先出。排序

1-3.數據結構---數組

特色:查詢快,增刪慢。索引

由於數組的地址相連的,咱們經過數組的首地址能夠找到數組,經過索引能夠快速查找到某個元素,即查詢快。接口

由於數組的長度是固定的,因此若要增長/刪除一個元素,必須建立新的數組,再把原來的數組複製進來,即增刪慢。隊列

1-4.數據結構---鏈表

特色:查詢慢,增刪快。element

鏈表中的地址不是相連的,每次查詢元素都是從頭開始查詢的,即查詢慢。

在鏈表結構,增長/刪除一個元素,對鏈表的總體結構沒有影響,即增刪快。

在鏈表中,每個元素也被稱做一個節點。

一個節點包含了一個數據源(存儲數組),兩個指針域(存儲地址)。

單向鏈表:鏈表中只有一個鏈子,不能保證元素的順序(存入元素的順序和取出元素的順序可能不一致)。

雙向鏈表:鏈表中有兩條鏈子,有一條鏈子是專門記錄元素的順序的,是一個有序的集合。

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

能夠實現增加的對象數組。

相關文章
相關標籤/搜索