Java集合框架學習--(1)List

1 集合和數組之間的主要區別

  1. 數組是定長的,集合是不定長的;
  2. 數組的類型是確定的,集合類的類型可以是不確定的,可以存儲不同類型的對象;

2 集合框架Collection(從底層不斷向上抽取而成的)

這些容器的主要區別是:每一個容器對數據的存儲方式不同,即數據結構不同。相同之處是:都是容器。

2.1 Collection中常用的共性方法(下面標出不熟悉的)

  1. containsAll(Collection<?> c):兩個集合之間的交集。
  2. removeAll:移除兩個集合之間的交集。
  3. retainAll(Collection<?> c):兩個集合之間的交集。

2.2 Iterator迭代器

因為每個集合的數據結構不同,所以每個取出的方式與不同,但是都有共性的內容:判斷和取出。
那么就可以將共性抽取,形成一個內部類。這些內部類都符合一個規則,該規則就是Iterator,通過對外提供一個方法iterator()來獲取元素。

2.3 List

2.31 List共性方法(不熟悉)
  1. indexOf:返回此列表中首次出現的指定元素的索引,或如果此列表不包含元素,則返回 -1。更確切地講,返回滿足 (o==null ? get(i)==null : o.equals(get(i)))的最低索引i ,如果不存在此類索引,則返回 -1。
  2. lastIndexOf:返回此列表中最后一次出現的指定元素的索引,或如果此列表不包含索引,則返回 -1。更確切地講,返回滿足(o==null ? get(i)==null : o.equals(get(i)))的最高索引 i,如果不存在此類索引,則返回 -1。
2.32 Arraylist(元素可重復,有序)
  1. Arraylist特點:查詢速度很快,但是增刪稍慢。底層的數據結構是數組。線程不同步。默認長度為10,超出10時,50%延長。

  2. 元素有序和可以重復的原因:
    該集合中存在索引,可以通過索引順序取得元素,同樣相同的元素也可以通過不同的索引來區分。

  3. Arraylist中的Contians()和remove()方法底層依賴的是equals方法。

  4. ListIterator方法
    注意點:不能既用ArrayList的add方法去添加元素,同時又用ArrayList中的Iterator方法去取出元素。這樣會導致并發修改異常。而且Iterator只能對元素進行判斷、取出、刪除的操作。
    如果希望對元素進行如添加、修改等,就需要使用其子接口,ListIterator方法。
    該接口只能通過List集合的ListIterator方法獲取。

2.33 LinkedList

LinkedList底層使用的鏈表數據結構。
特點:增刪速度很快,查詢稍慢。

LinkedList中的特有方法:

  • 增加元素:addFirst(),addLast()和取出元素:getFirst(),getLast()和根據索引取出元素方法get();
  • 添加元素:offer(末尾添加元素)、offerFirst(頭部添加)、offerLast(尾部添加);
  • 獲取不移除:peek、peekFirst、peekLast;
  • 獲取并移除:poll、pollFirst、pollLast;
  • 取出和插入:pop、push
2.34 Vector

Vector底層是數組數據結構,Vector線程同步的。默認長度為10,超出10時,100%延長。
元老級干部,幾乎被ArrayList替代。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • title: java集合框架學習總結 tags:集合框架 categories:總結 date: 2017-03...
    行徑行閱讀 1,713評論 0 2
  • Collection ├List │├LinkedList │├ArrayList │└Vector │└Stac...
    AndyZX閱讀 893評論 0 1
  • 1.Java集合框架是什么?說出一些集合框架的優點? 每種編程語言中都有集合,最初的Java版本包含幾種集合類:V...
    獨念白閱讀 823評論 0 2
  • 一、集合框架的概述 1、概述: 1、簡述:所謂集合,就是為方便對多個對象的操作,對對象進行存儲。集合就是存儲對象最...
    玉圣閱讀 537評論 0 4
  • 新忽熱蘇木2017年春防工作總結 我蘇木3月14日春防工作開始于4月30日結束,全蘇木累計完成消毒面積22萬平...
    1114544閱讀 318評論 0 0