Java學習—集合框架 – JAVA編程語言程序開發技術文章

1,集合框架概述集合框架是Java中非常重要的一種數據結構,它是用來存儲對象的一個容器。在容器中可以存放多個多類型的元素。集合的概念進一步提高瞭java的封裝思想。數據的雜亂多現象用類來封裝,把各個需要的數據封裝到一個具體類中,一類的形式體現對象的特性。集合是用來存儲類多的現象,一層層的往上封裝,體現給用戶隻是一個簡單的接口,這在程序的開發和閱讀性減輕的代碼的復雜度。java的擴平臺易擴展特性,充分體現出這一點。這是我個人的理解。集合中存放的元素不同,根據這些元素做瞭相應的處理和存儲,根據不同的存儲結構,集合分為瞭List集合和Set集合兩大分支。List集合的特點就是元素具備角標,對List集合中元素的訪問也多瞭一種方式,就是按照角標操作。List集合中的元素可以重復。Set集合的特點是元素不具備角標,元素不能重復。對元素的訪問使用Iterator迭代器。
  2,集合的分類及特點Collection:|——list:元素是有序的,元素可以重復,因為該集合體系有索引。取元素方式有兩種:一種是for循環,一種是迭代器。
  ArrayList:底層數組結構,特點:增加刪除比較慢,查詢速度快,線程不同步。
  linkedList:底層是鏈表結構,特點:增加刪除比較快,查詢速度慢。
  特有方法:addFirst();addLast();getFirst();getLast();獲取元素,但不刪除元素。如果沒有元素會出現NoSuchElementException removeFirst();removeLast();獲取元素,但是元素被刪除。如果沒有元素會出現NoSuchElementException在JDK1.6出現瞭替代方法。
  OfferFirst();OfferLast();peekFirst();peekFirst();獲取元素,但不刪除元素。如果沒有元素不會出現NoSuchElementException pollFirst();pollLast();獲取元素,但是元素被刪除。如果沒有元素不會出現NoSuchElementException vector:底層是數組結構。線程同步。增刪改查速度都慢。被ArrayList代替。
  枚舉是vector特有的取出方式,vector有三種取出方式。枚舉和迭代器很像。
  其實枚舉和迭代是一樣的,因為枚舉的名稱以及方法的名稱比較長,被迭代器取代瞭。
  List集合判斷元素是否相等使用是自身的equals方法。默認的equals方式,比較的是地址值。當我們比較元素是否相等時,如果判斷的條件不一樣時,需要復寫equals方法。
  |——set:元素是無序,元素不重復。Set集合的方法和Collection是一致的。
  |——HashSet:底層結構式哈希表。
  在對HashSet集合存儲元素的時候,首先調用hashCode()方法獲得給對象的哈希值,當以後加入元素時,也是首先獲得該元素的哈希值,然後跟集合中已有元素的h哈希值比較,如果哈希值不等,不會調用equals()方法,元素存儲成功。如果新加元素和已有某個元素的哈希值相同,在調用equals()判斷是否為同一元素,做進一步的判斷,這個可以根據自己的條件復寫hashCode()和equals()。HashSet集合對元素不會進行默認排序。
  註意:對於判斷元素是否存在,以及刪除等操作,依賴的方法是元素hashCode和equals |——TreeSet:可以對set集合中的元素進行排序。TreeSet集合中的元素要具備比較性,存儲多個不具備比較性的元素,編譯時會報錯。是元素具備比較性的方式有兩種:實現comparable接口和在創建集合時傳遞比較器comparator.

作者 sdtarena

發佈留言