日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈:ArrayList,ListT,ListObject

發布時間:2023/12/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈:ArrayList,ListT,ListObject 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近看項目中有個地方用到了 List<Object> ,想到List<Object>能動態插入?object對象,而ArrayList也是動態插入object對象。我在想這兩個是不是同樣的功能呢,查看元數據代碼如下:

ArrayList

public?class?ArrayList?:?IList,?ICollection,?IEnumerable,?ICloneablepublic?virtual?int?Add(object?value);//添加一個對象

List<T>

public?class?List<T>?:?IList<T>,?ICollection<T>,?IEnumerable<T>,?IList,?ICollection,?IEnumerablepublic?void?Add(T?item);//添加一個對象

比較兩者,發現兩者的Add方法一個是可重寫的,并且返回當前索引,一個就是void?方法,T?item,當T為Object的時候,個人認為兩者差距不大,但是他們如果Add?值類型的時候就會引發裝箱操作,影響性能,通過測試發現(測試代碼在附件中),ArrayList?和List<Object>?兩者執行同樣的操作,效率差不多,無論是有無拆裝箱。但是,如果用到List<T>?時候,最好不要把 T?傳入Object ,否則失去了泛型T?的意義。如果執行int操作,就用List<int>.


總的來說呢,程序開發過程中盡量避免拆裝箱的操作,頻繁的拆裝箱會使效率降低很多。

題外話:以前看面試題目,問到ArrayList和List的區別,感覺一頭霧水,直到現在才明白,原來問的是這么個問題,唉,程序不能只寫,也得思考啊,另外,F12看程序元數據也是不錯的學習方法。附上程序運行結果,不過有偏差,如果單獨運行ArrayList?或者List<Object>?它倆結果就相差不大,可是把List<Object>放在ArrayList后邊運行,就會顯得慢一些,估計也有程序問題吧,就到這了。以上純屬個人見解,如果錯誤,請不吝指出。


轉載于:https://blog.51cto.com/panzi/1591247

總結

以上是生活随笔為你收集整理的浅谈:ArrayList,ListT,ListObject的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。