java集合學習一

來源:互聯網
上載者:User

標籤:java   集合   collection   map   set   

1.Set存放的元素是無序的不可重複。
2.List存放的元素為有序可重複。
3.重寫equals方法,一般最好重寫hasCode方法,當對象作為key的時候及索引,會使用hasCode方法進行尋找。
4.容器物件在調用remove,contains等方法時需要比較對象是否相等,這會涉及到物件類型的equals方法和
  hashCode方法。對於自訂的類型,需要重寫equals和hashCode方法以實現自訂的對象相等規則。相等的對象
  應該具有相等的hashCode。
5.ArrayList底層是動態數組實現的,便於尋找,讀快
6.LinkedList底層以雙向鏈表實現,便於插入和刪除,讀慢(Hash介於Array(讀快改慢)和Linked(改快讀慢)兩者之間)
7.Set容器類有HashSet,TreeSet等

8.Map介面的實作類別有HashMap(hash實現)和TreeMap(二叉樹實現)等。

9.以下是java中集合的思維導圖,總結了Java中集合的關係,區別,特點






由圖可以看出,Java中的集合由三部分主成,包括Map,Collection,Collections,

  其中Map儲存的時key和value,Collection是Set和List的父類,Collections是集合的操作類,可以對集合進行處理。

  Collection是List和Set的

下面先分析下Collection的源碼:

public interface Collection<E> extends Iterable<E> {/*size()函數返回集合的大小,即集合有多少個元素,傳回值為int型 * */int size();//判斷集合是否為空白,為空白則返回true,不為空白則返回falseboolean isEmpty();//判斷指定的元素是否在集合中,在則返回true,不再則返回falseboolean contains(Object o);//實現的iterator介面,把集合的元素轉換成迭代器進行輸出Iterator<E> iterator();//把集合元素轉換成Object數組Object[] toArray();// 返回包含此 collection 中所有元素的數組;返回數組的運行時類型與指定數組的運行時類型相同。 <T> T[] toArray(T[] a);  //把元素e存放到集合中 boolean add(E e);  //刪除集合中的元素o boolean remove(Object o);  //是否包含指定的集合元素 boolean containsAll(Collection<?> c);  //把集合元素c添加到本集合中 boolean addAll(Collection<? extends E> c);  //移除機會中說有的集合元素c boolean removeAll(Collection<?> c);  //僅保留此 collection 中那些也包含在指定 collection 的元素(可選操作)。 boolean retainAll(Collection<?> c);  //清除所有的集合元素 void clear();  //重寫equals方法,用來判斷元素是否相等 boolean equals(Object o);  //重寫的hashCode方法,輔助判斷元素是否相等,返回此 collection 的雜湊碼值 int hashCode();}

10.從上我們可以看出Collection繼承了了Iterable<E>介面,那麼我們在看看Iterable<E>介面的源碼,此介面只有3個函數:

public interface Iterator<E> {//剛開始迭代的指標是指向第一元素前面//如果仍有元素可以迭代,則返回 trueboolean hasNext();//返回迭代的下一個元素。E next();//從迭代器指向的 collection 中移除迭代器返回的最後一個元素(可選操作)。void remove();}



通過上面的基礎知識相信對java中集合的基礎知識應該有所瞭解,學東西要從源頭學習,才能學的紮實,所以有空的話,要多看源碼,學習源碼的思想和代碼風格。


本文為原創,轉載請著名來自:http://blog.csdn.net/j903829182/article/details/38497469

















































































































相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.