集合

容器

容器在解決什麼問題?

存儲一堆的數據是容器解決的最基本的問題。針對不同的需求有不用的容器。主要在於刪除,插入,查詢,效率,長度,排序,去重,數據結構

  1. 數組。數組是Java內置的容器。效率很快,因爲是最基本的。但是長度卻被限制,其餘的容器去很好的解決這個問題。
  2. list:list集合是對數組的一個擴充。對於排序,對於數組長度的限制,ArrayList對於一般情況足夠使用,但是如果需要進行大量的插入和刪除工作,那麼還是需要用鏈表實現的LinkedList
  3. set:set集合是爲了進行去重,HashSet一般情況足夠對付,但是如果同時需要兼顧排序的話,則需要使用TreeSet,如果是需要插入和刪除上,則使用LinkedHashSet。但是set都是不能快速的進行訪問。
  4. map:map集合主要解決鍵值對數據結構的數據。一般使用HashMap足夠使用,但是需要排序則使用TreeMap。

數組

基礎

  1. 初始化
1.String[] strings = new String[n];
2.String[] strings = {"1","2"};
3.String[] strings = new String[]{"1","2"};
  1. 唯一訪問的屬性,length(),該屬性只代表數組的長度,不代表裏面具體元素的個數
  2. 訪問,[]
  3. 排序:

    1. 對象實現Comparable接口,Arrays.sort()
    2. 定義Comparator的實現類

集合

分類

  1. colleciton

    1. list
    2. set
  2. map

hashMap

hashMap的使用就在於對於鍵的使用,使得我們可以快速的查詢。但是如果我們都把鍵存儲在數組中,使用數組進行查找總是很慢的。所以我們可以折中,使用鍵生成的hash碼來存儲值。但是hash碼有可能相同,所以我們可以將相同的hash碼的值存儲在同一個容器中。所以這個hash碼的設計變得很關鍵。因爲如果設計固定不變,就變回我們剛纔所說的情況。但是如果hash碼設計成每次都是變化的,那麼這個值將不好查詢。

轉換

array --> list
list,set --> Collection.toArray()
list --> set

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