1. 程式人生 > 實用技巧 >學習集合所做的一些筆記

學習集合所做的一些筆記

陣列的特點:

1.陣列的長度是固定的

2.陣列只能儲存同一型別的資料

3.陣列具有預設值

1.集合的長度是可變的

2.集合是用來儲存物件的

3.集合不能儲存基本資料型別

集合的體系結構:

Collection是作為集合的最頂層介面,其下可分為List和Set兩個子介面,兩個子介面下方則是一些現有類

首先介面不能例項化,通過Collection c =new ArrayList();能建立一個Collection物件,這是通過多型的形式來幫助不能例項化的抽象類以及介面建立一個物件。

下方是Collection所具備的一個通用的方法
boolean add(Object e): 向集合中新增元素
boolean addAll(Collection e): 向集合中新增元素
void clear():清空集合中所有元素
boolean contains(Object o):判斷集合中是否包含某個元素
boolean isEmpty():判斷集合中的元素是否為空
boolean remove(Object o):根據元素的內容來刪除某個元素
int size():獲取集合的長度
Object[] toArray():能夠將集合轉換成陣列並把集合中的元素儲存到陣列中

迭代器

迭代器是集合的一種遍歷方式,能夠將集合中的元素取出

當使用for迴圈語句來判斷Collection集合當中是否存在一個元素,如果存在集合就新增一個新的元素時,會出現一個併發性錯誤。

Collection集合新增或修改一個元素,集合與迭代器中的元素個數不匹配會發生併發性錯誤

1.如果是集合進行新增或者刪除資料時,會出現併發修改異常

(集合新增或刪除元素,與迭代器元素個數不匹配)

  1. 如果是迭代器進行刪除時,刪除的是做為條件的元素
    (因此迴圈的結果,只能是從迭代器中刪除目標元素)

list集合的迭代器可以解決Collection集合迭代器集合新增元素的併發修改異常問題

1.因為list集合迭代器能新增元素

特殊的地方:

如果Collection以倒數第二個元素作為條件判斷, 集合刪除元素的操作不會產生併發修改異常,但是如果是新增元素的操作,仍然會出現異常。

遍歷方式:

1.Object[] obj = c.Array();

for迴圈獲取

2.Iterator遍歷

3.增強for迴圈是JDK1.5以後出來的一個高階for迴圈,專門用來遍歷陣列和集合的。它的內部原理其實是個Iterator迭代器,所以在遍歷的過程中,不能對集合中的元素進行增刪操作。

4.ste get 方法

for(i<set.size)

sout(set.get[i])

Link所存在的一些方法

​ void add(int index, E element) :將元素新增到index索引位置上

​ E get(int index) :根據index索引獲取元素

​ E remove(int index) :根據index索引刪除元素

​ E set(int index, E element):將index索引位置的的元素設定為element

 /* LinkedList底層使用的是連結串列結構,因此增刪快,查詢相對ArrayList較慢
    void addFirst(E e) :向連結串列的頭部新增元素
    void addLast(E e):向連結串列的尾部新增元素
    E getFirst():獲取鏈頭的元素,不刪除元素
    E getLast():獲取鏈尾的元素,不刪除元素
    E removeFirst():返回鏈頭的元素並刪除鏈頭的元素
    E removeLast():返回鏈尾的元素並刪除鏈尾的元素
*/

Collections工具類當中所具有的方法
static int binarySearch(List list, Object key) 使用二分查詢法查詢指定元素在指定列表的索引位置
* static void copy(List dest, List src) :是把源列表中的資料覆蓋到目標列(複製集合)
* static void fill(List list, Object obj) :使用指定的物件填充指定列表的所有元素
* //static void reverse(List list) :反轉
* //static void shuffle(List list):傻否,隨機置換
* //static void sort(List list) :按照列表中元素的自然順序進行排序
* //static void swap(List list, int i, int j) :將指定列表中的兩個索引進行位置互換