集合和映射表

下面這些類圖是通過IDEA生成的,將一些無用的線刪掉了(比如:LinkedList繼承了AbstractList,並且實現List,其實不用聲明實現List接口,因爲這裏AbstractList就是List的實現。這種做法不明白其意思,網上搜索的答案是因爲手誤,但是也不影響程序,所以就一直保留了。。)

下面是集合的類圖,這裏只畫出了比較常用的類,並不是java中的全部集合類,大致可以分爲三種類型:ListSetQueue,後面會對每種類型的集合進行詳細解讀,這裏只簡單提一下這三種類型的區別。

List:作爲有序集合的容器,實現方式有數組(ArrayList)和鏈表(LinkedList)。
Set:不能包含重複元素,並且元素是無序的,當然這裏的無序指的是天然無序,並不是沒有辦法讓它有順序,如果不考慮元素的順序,只是判斷元素是否存在於集合中,使用這種數據結構更高效。
Queue:隊列是一種FIFO的數據結構,也有雙端隊列,常用的場景是阻塞隊列實現生產者和消費者。

List
Set
Queue
Map
視圖
迭代器
併發集合
建議
  • LinkedList和ArrayList 的使用場景和區別?

  • Iterator 和 ListIterator 的區別?

  • 訪問元素的方式?

  • 列表和集的使用場景?
    列表是有序的,但是對於不關心元素順序的場景,使用集更高效,因爲查找相當於索引訪問數組(當然這裏也要考慮哈希衝突導致的列表查找)

  • 隊列類似功能方法區別?

  • 優先級隊列的實現

  • 更新一個映射值有那些方式

  • 常見的映射表

  • 視圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章