天天看點

Java集合

•Calendar類

•使用Collection接口及其實作類:

– ArrayList類

– LinkedList類

– Vector類

•掌握HashMap類

在講集合之前先說一下Calendar,其實Calendar在開發中并不常用,是以在此之前沒怎麼了解到,現在了解到了就一起寫到同樣在java.util包的集合的知識點裡。

Calendar類是用來操作日期和時間的類,但它可以以整數形式檢索類似于年、月、日之類的資訊;

• Calendar類是抽象類,無法執行個體化,要得到該類對象隻能通過調用getInstance方法來獲得;

• Calendar對象提供為特定語言或月曆樣式實作日期格式化所需的所有時間字段。

Calendar提供了很多方法用來擷取目前時間、目前時間是在一年中的第幾天、第幾個星期,擷取目前時間的年月日等。

ArrayList是長度可變的對象引用數組,稱為動态數組;

• 随着元素的添加,元素數目的增大,數組容量也會随之自動擴充;

• 通路和周遊數組元素時,ArrayList的性能優越;

• ArrayList類繼承了AbstractList類并實作了List接口。

• LinkedList類用于建立連結清單資料結構;

• 連結清單中元素的數量不受任何限制,可以随意地添加和删除;

• 與ArrayList相比,如果需要頻繁地添加和删除元素,LinkedList的性能更加優越;

• LinkedList類繼承了AbstractSequentialList類,并實作了List接口;

注意:添加和删除元素時,LinkedList快,檢索元素時ArrayList快。

Vector類與ArrayList類和LinkedList類很相似,最大的差別在于Vector是線程同步的;

• 如果在多線程的程式中要使用到集合架構,并且不希望線程與線程之間互相幹擾,那麼Vector是不錯的選擇;

• Vector類繼承于AbstractList類,并實作了List接口。

• HashMap以鍵值對的形式存儲元素;

• 對于HashMap來說,不存在索引,也就是說不可以通過索引來通路元素,隻能通過鍵去通路值,如要快速檢索元素的話,HashMap性能優越;

• 由于沒有索引,是以HashMap中元素的存放是沒有順序的;

• HashMap類繼承了AbstractMap類,并實作了Map接口。

總結:

Collection是集合類的上級接口,繼承與他的接口主要有Set 和List.

Collections是針對集合類的一個幫助類,他提供一系列靜态方法實作對各種集合的搜尋、排序、線程安全化等操作。

ArrayList類可以建立動态數組;

LinkedList類可以建立連結清單結構;

Vector類可以建立線程同步的動态數組;

HashMap類可以建立鍵值對集合。