javalist與array
⑴ java中List和ArrayList的區別
java中List和ArrayList的區別如下:
List是介面,List特性就是有序,會確保以一定的順序保存元素.
ArrayList是它的實現類,是一個用數組實現的List。
使用方法:
比如:List list = new ArrayList();
這樣做的原因是list就相當於是一個泛型的實現,如果想改變list的類型,只需要:
List list = new LinkedList();//LinkedList也是List的實現類,也是ArrayList的兄弟類
⑵ java list和數組的區別
List和ArrayList的區別在於:
1、在編程語言中ArrayList類是.Net Framework提供的用於數據存儲和檢索的專用類。List 類可以簡單視之為雙向連結串列,以線性列的方式管理物件集合。List類是ArrayList類的泛型等效類。
2、ArrayList繼承了IList介面,所以它可以很方便的進行數據的添加,插入和移除。List的大部分用法都與ArrayList相似,List類也繼承了IList介面。
3、在ArrayList中可以插入不同類型的數據。ArrayList會把所有插入其中的數據都當作為object類型來處理,這其中存在裝箱與拆箱的操作,會對系統造成性能上的損耗。而List需要聲明其數據的對象類型。聲明後插入其他類型數據,IDE就會報錯,且不能通過編譯。
(2)javalist與array擴展閱讀:
一、List泛型
通過允許指定泛型類或方法操作的特定類型,泛型功能將類型安全的任務從程序員轉移給了編譯器。不需要編寫代碼來檢測數據類型是否正確,因為會在編譯時強制使用正確的數據類型。減少了類型強制轉換的需要和運行時錯誤的可能性。泛型提供了類型安全但沒有增加多個實現的開銷。
二、裝箱與拆箱的概念:
1、裝箱:就是將值類型的數據打包到引用類型的實例中 比如將int類型的值123賦給object對象o
int i=123; object o=(object)i;
2、拆箱:就是從引用數據中提取值類型 比如將object對象o的值賦給int類型的變數i
object o=123; int i=(int)o;
3、裝箱與拆箱的過程是很損耗性能的。