最近對這兩個問題比較懵逼,關於list和arraylist、listlist = new arraylist();
好了,先搞明白list 和 arraylist吧。
list是乙個介面,是collection介面的乙個子介面,是乙個有序的集合。
arraylist是list的乙個實現類,可以實現陣列大小的可變,可以很方便的進行增加和刪減陣列內元素的操作。
1 listparalist = new arraylist<>();2 paraxmllist("cfgxml", dataxmlpath, paralist);
3 paralist.add(new basicnamevaluepair("productid", productid));//(此處對list進行新增了資料)
list list=new arraylist();這種形式成為向上轉型,arraylist實現了list介面,可以看成是從list繼承而來,乙個子類的物件可以指向它父類。
比如,狗從動物繼承而來,狗是乙隻動物,所以狗的物件可以當作乙隻普通的動物來看待。
然後再來說說list
list=new arraylist();為甚麼要宣告為list
而不是arraylist?
list是集合最大的父類,它包含了arraylist。
如果直接宣告為arraylistlist=new arraylist()這個也沒有問題,但是不推薦,應為這樣顯得不是很靈活,因為list下除了arraylist還有linklist等他們都實現了list裡面的方法。
而宣告成:list list=new arraylist();這樣的形式使得list這個物件可以有多種的存在形式
比如要用鍊錶存資料的話直接用linkedlist,使用arraylist或者vector直接通過list = new linkedlist();就可以了,這樣讓list這個物件活起來了
很多需求只能用乙個list,記憶體有限,或者執行緒同步,不能有更多的集合物件,使得list總的介面來管理物件。
java基礎 list和arrayList的區別
裝箱 在值型別向引用型別轉換時發生 拆箱 在引用型別向值型別轉換時發生 值型別 直接將記憶體儲存在棧內,由系統自動釋放資源的資料型別 引用型別 由型別的實際值引用 類似於指標 表示的資料型別,通俗點說就是在程式設計時需要new出來的變數型別都是引用型,引用型別是存放在記憶體的堆中 記憶體堆跟棧的定義...
陣列 List和ArrayList的區別
陣列 list和arraylist的區別 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元素也很簡單,比如 string s new string 3 賦值 s 0 a s 1 b s 2 c 修改 s 1 b1 但是陣列也存在一些不足的地方。比如在陣列的兩個資料間插入資料也...
陣列 List和ArrayList的區別
陣列 list和arraylist的區別 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元素也很簡單,比如 string s new string 3 賦值 s 0 a s 1 b s 2 c 修改 s 1 b1 但是陣列也存在一些不足的地方。比如在陣列的兩個資料間插入資料也...