一、數(shù)組與集合的不同
1、數(shù)組聲明了它容納的元素的類型,而集合不聲明。
2、數(shù)組的長度是固定的,集合長度是可以改變的。
數(shù)組是靜態(tài)的,一個數(shù)組實(shí)例具有固定的大小,一旦創(chuàng)建了就無法改變?nèi)萘苛恕6鲜强梢詣討B(tài)擴(kuò)展容量,可以根據(jù)需要動態(tài)改變大小,集合提供更多的成員方法,能滿足更多的需求。
3、數(shù)組的存放的類型只能是一種(基本類型/引用類型),集合存放的類型可以不是一種(不加泛型時添加的類型是Object)。
4、數(shù)組是java語言中內(nèi)置的數(shù)據(jù)類型,是線性排列的,執(zhí)行效率或者類型檢查都是非常快的。
5、集合以接口和類的形式存在,具有封裝,繼承和多態(tài)等類的特性,通過簡單的方法和屬性調(diào)用即可實(shí)現(xiàn)各種復(fù)雜的操作,大大提高軟件的開發(fā)效率。
數(shù)組
數(shù)組是java語言內(nèi)置的數(shù)據(jù)類型,他是一個線性的序列,所有可以快速訪問其他的元素,數(shù)組和其他語言不同,當(dāng)你創(chuàng)建了一個數(shù)組時,他的容量是不變的,而且在生命周期也是不能改變的,還有JAVA數(shù)組會做邊界檢查,如果發(fā)現(xiàn)有越界現(xiàn)象,會報(bào)RuntimeException異常錯誤,當(dāng)然檢查邊界會以效率為代價。
集合
JAVA還提供其他集合,list,map,set,他們處理對象的時候就好像這些對象沒有自己的類型一樣,而是直接歸根于Object,這樣只需要創(chuàng)建一個集合,把對象放進(jìn)去,取出時轉(zhuǎn)換成自己的類型就行了。
延伸閱讀:
二、List接口是什么
List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置。用戶能夠使用索引(元素在List中的位置,類似于數(shù)組下標(biāo))來訪問List中的元素,這類似于Java的數(shù)組。
和下面要提到的Set不同,List允許有相同的元素。除了具有Collection接口必備的iterator()方法外,List還提供一個listIterator()方法,返回一個ListIterator接口,和標(biāo)準(zhǔn)的Iterator接口相比,ListIterator多了一些add()之類的方法,允許添加,刪除,設(shè)定元素,還能向前或向后遍歷。
實(shí)現(xiàn)List接口的常用類有LinkedList,ArrayList,Vector和Stack。