集合

容器

容器在解決什麼問題?

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

  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的實現類

集合

分類code

  1. colleciton對象

    1. list
    2. set
  2. map

hashMap排序

hashMap的使用就在於對於鍵的使用,使得咱們能夠快速的查詢。可是若是咱們都把鍵存儲在數組中,使用數組進行查找老是很慢的。因此咱們能夠折中,使用鍵生成的hash碼來存儲值。可是hash碼有可能相同,因此咱們能夠將相同的hash碼的值存儲在同一個容器中。因此這個hash碼的設計變得很關鍵。由於若是設計固定不變,就變回咱們剛纔所說的狀況。可是若是hash碼設計成每次都是變化的,那麼這個值將很差查詢。接口

轉換ci

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

相關文章
相關標籤/搜索