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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java高级篇 -- List选择及优化

發布時間:2023/12/10 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java高级篇 -- List选择及优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

在java編程中,我們常常使用到java自帶的集合類List

以下為幾點簡單的優化建議:

1.Vector還是ArrayList

? Vector有其特有有點,其每個方法都為同步方法【synchronized】,所以是線程安全的,在多線程環境下,若多個進程同時訪問受保護資源,用Vector就顯得十分簡潔,安全。

? ArrayList為非線程安全的,若不是多線程環境,或多線程環境下資源不需要寫、更新,只需要讀取,使用,或資源不需要受保護,使用ArrayList就大大提高了效率。

? 線程安全的散列表將本來可以并行處理的任務進行排隊,串行處理。

? 同樣:Hashtable是線程安全的,HashMap是非線程安全的

?

2.設置ArrayList初始化容量

? ArrayList不斷增長過程中會自動擴增其空間,這無疑耗費一定的資源,時間。

? 如果已經預料到ArrayList將是一個很大的數組,并且你預料到它將變得異常龐大,可預先設置數組的大小,可以提高添加新元素的速度,并優化性能。

? 原來ArrayList list=new ArrayList();

? 現在ArrayList list=new ArrayList();

????? list.ensureCapacity(N);

?

3.ArrayList與LinkedList

? 二者功能相當,但內部實現的數據結構不同

? ArrayList通過object[]實現,LinkedList通過鏈表。

? 由此易得:

? ArrayList:隨機訪問,順序添加效率均高于LinkedList,只要用于變動較小的集合存儲

???????????? 對其添加、刪除某位置元素,將移動所有后方元素,效率太低

? LinkedList:在某個位置增刪效率較高,用于變動較為頻繁的集合存儲

?

4.遍歷

? 若List不發生大小變動【循環中無remove,add操作】,即不用每次檢測其大小

? 原來:

? for (int i = 0; i < vector.size (); i++) ?

? 改為:

? for (int i = 0,n=list.size (); i < n; i++) ?

? 不用每次循環都檢測其大小,效率將大大提高

?

5.使用

? 除非十分必要,否則盡量使用java提供的集合,不要自己書寫功能類似的方法 ?


轉載于:https://my.oschina.net/julycn/blog/331742

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java高级篇 -- List选择及优化的全部內容,希望文章能夠幫你解決所遇到的問題。

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