1. 程式人生 > >java 集合框架 簡單介紹

java 集合框架 簡單介紹

問題:

1.集合框架是什麼?
2.為什麼需要集合框架,如果沒有集合框架,會怎樣?
3.使用了那種設計模式?
4.集合框架的核心演算法分析

1.集合框架是什麼?
集合框架是對常用的資料結構和演算法進行封裝的聚合體。
資料結構有: 陣列,連結串列,雜湊,樹,棧,佇列…………。
演算法:插入排序,快速排序,歸併排序……….

2.為什麼需要集合框架,如果沒有集合框架會怎樣?
為了提高程式的效能,java提供了對常用資料結構和演算法的分析,使程式設計師更加關注於實現業務邏輯。 避免自己實現資料結構和演算法。節省開發時間。 如果沒有集合框架,那麼我們要自己封裝資料結構和演算法,並且由於我們對演算法理解的不夠深入容易導致程式效能下降。
3. 使用了那種設計模式? 迭代器模式

先來看看集合框架的架構圖:

這裡寫圖片描述

  1. collection 介面及其實現類
  2. map介面及其實現類
  3. iterator介面及其實現類
    4.工具類
    1.collection
    介面主要實現 list和set資料結構。
    list: 存放的資料可以重複 eg: 1 ,3,1 list 是可以的
    set: 存放的資料是唯一 eg 1,3,1 set 只會存 1,3 這兩個值。
    2.map
    介面主要實現 map
    map 存放資料 key ,value 鍵-值對。
    3.iterator 迭代器模式
    為了使用統一的介面對資料進行遍歷。
    4.工具類
    collections Arrays
    簡要的的UML(union mode language 統一建模語言)類圖如下:
    這裡寫圖片描述

實現的資料結構:
這裡寫圖片描述

集合設計思路:
最頂層介面抽象出最有共性的方法,然後下一層可以使用抽象類實現一小部分共性方法。期間抽象類和介面交替出現。
頂層介面: collection 使用了default method 是java8推出的新特性。(為了避免對已存的結構進行太大的變化,須知現實世界的複雜性,軟體的發展是人對世界的一個認識過程。)

集合中使用的技術: 內部類(iterator 迭代器實現,default方法,封裝,繼承,多型,各種演算法的實現。

首先要明白沒有最優的資料結構和演算法,只有最適合應用場景的資料結構和演算法。

例如以下 ArrayList 和LinkedList 的比較

ArrayList LinkedList
動態陣列 雙鏈表

操作相比慢,因為使用的是陣列,如果 操作相比是塊的,因為實現使用的是連結串列,刪
刪除陣列和插入陣列需要移動整個陣列。 除和插入元素很快。

ArrayList和LinkedList 的本質區別在於 陣列和連結串列的區別。優缺點也是陣列和連結串列的區別。

區分: vector和ArrayList 的本質區別是 verctor 是執行緒安全的,ArrayList不是執行緒安全的。

迭代器模式和具體演算法分析,不再本篇中介紹,會在後續單獨寫篇博文分享給大家。





關注我的公眾號第一時間閱讀有趣的技術故事
掃碼關注:

也可以在微信搜尋公眾號即可關注我:codexiulian
渴望與你一起成長進步!