18禁网站免费,成年人黄色视频网站,熟妇高潮一区二区在线播放,国产精品高潮呻吟AV

學習啦 > 生活課堂 > 生活小常識 > 集合跟數組的區(qū)別

集合跟數組的區(qū)別

時間: 岳彬1043 分享

集合跟數組的區(qū)別

  在學習計算機語言Java中會遇到許多問題,例如集合跟數組的區(qū)別,下面是學習啦小編為你整理的集合跟數組的區(qū)別,供大家閱覽!

  數組Array和集合的區(qū)別:

  (1)數組是大小固定的,并且同一個數組只能存放類型一樣的數據(基本類型/引用類型)

  (2)JAVA集合可以存儲和操作數目不固定的一組數據。 (3)若程序時不知道究竟需要多少對象,需要在空間不足時自動擴增容量,則需要使用容器類庫,array不適用。

  聯(lián)系:使用相應的toArray()和Arrays.asList()方法可以回想轉換。

  集合的體系結構:

  List、Set、Map是這個集合體系中最主要的三個接口。 List和Set繼承自Collection接口。 Map也屬于集合系統(tǒng),但和Collection接口不同。

  Set不允許元素重復。HashSet和TreeSet是兩個主要的實現類。Set 只能通過游標來取值,并且值是不能重復的。

  List有序且允許元素重復。ArrayList、LinkedList和Vector是三個主要的實現類。 ArrayList 是線程不安全的, Vector 是線程安全的,這兩個類底層都是由數組實現的 LinkedList 是線程不安全的,底層是由鏈表實現的

  Map 是鍵值對集合。其中key列就是一個集合,key不能重復,但是value可以重復。 HashMap、TreeMap和Hashtable是Map的三個主要的實現類。 HashTable 是線程安全的,不能存儲 null 值 HashMap 不是線程安全的,可以存儲 null 值

  List和ArrayList的區(qū)別

  1.List是接口,List特性就是有序,會確保以一定的順序保存元素.

  ArrayList是它的實現類,是一個用數組實現的List.

  Map是接口,Map特性就是根據一個對象查找對象.

  HashMap是它的實現類,HashMap用hash表實現的Map,就是利用對象的hashcode(hashcode()是Object的方法)進行快速散列查找.(關于散列查找,可以參看<<數據結構>>)

  2.一般情況下,如果沒有必要,推薦代碼只同List,Map接口打交道.

  比如:List list = new ArrayList();

  這樣做的原因是list就相當于是一個泛型的實現,如果想改變list的類型,只需要:

  List list = new LinkedList();//LinkedList也是List的實現類,也是ArrayList的兄弟類

  這樣,就不需要修改其它代碼,這就是接口編程的優(yōu)雅之處.

  另外的例子就是,在類的方法中,如下聲明:

  private void doMyAction(List list){}

  這樣這個方法能處理所有實現了List接口的類,一定程度上實現了泛型函數.

  3.如果開發(fā)的時候覺得ArrayList,HashMap的性能不能滿足你的需要,可以通過實現List,Map(或者Collection)來定制你的自定義類.

  猜你喜歡:

1.Java程序員集合框架面試題

2.JAVA面試題全集

3.阿里JAVA開發(fā)面試常問問題

4.2016java面試題

5.java語言如何學習

6.學習java如何入門

3305429