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