Java中集合和數組的區別

1、基本介紹

一、總的來講

區別:java

數組特色:大小固定,只能存儲相同數據類型的數據數組

集合特色:大小可動態擴展,能夠存儲各類類型的數據安全

二、具體說

區別:性能

數組和集合都是java中的容器。spa

一、數組聲明瞭它容納的元素的類型,而集合不聲明。code

二、數組是靜態的,一個數組實例具備固定的大小,一旦建立了就沒法改變容量了,並且生命週期也是不能改變的,還有數組會作邊界檢查,若是發現有越界現象,會報RuntimeException異常錯誤,固然檢查邊界會以效率爲代價。對象

而集合的長度是可變的,能夠動態擴展容量,能夠根據須要動態改變大小,集合提供更多的成員方法,能知足更多的需求。生命週期

三、數組的存放的類型只能是一種,Object數組能夠存多種類型;集合存放的類型能夠不是一種,只能夠存儲對象,也能夠存儲基本數據類型,但必須是基本類型的包裝類(不加泛型時添加的類型是Object)。string

集合能夠存放不一樣類型的引用類型,由於存入集合的元素都被轉化成了Object類型,以後再引用集合中的類型須要強制類型轉換,這就致使了集合的類型不安全,以及類型轉化的性能損耗io

四、數組是java語言中內置的數據類型,是線性排列的數組,因此能夠快速訪問其餘的元素。

三、集合和數組之間的轉換

數組轉換爲集合:

Arrays.asList(數組)

示例:

int[] arr = {1,3,4,6,6};

Arrays.asList(arr);

for(int i=0;i<arr.length;i++){

System.out.println(arr[i]);

}

集合轉換爲數組:

集合.toArray();

示例:

 

List list = new ArrayList();

 

 

list.add( "a");
list.add( "b");
list.toArray();
System.out.println(list.toString());
 

2、提升

在java中,數組不能放不一樣數據類型的值。

多態

定義數組類型的時候定義爲父類,而存進數組爲父類的子類

public class test2 {  public static void main(String args[]) {    father []a = new father[2];    a[0] = new son();    a[1] = new son2();  }}class father{  int i = 0; }class son extends father{  int x = 0;}class son2 extends father{  int y = 0;}

相關文章
相關標籤/搜索