Java中的數(shù)組或列表。哪個更快?
我建議您使用探查器來測試哪個更快。
我個人認為您應(yīng)該使用列表。
我在大型代碼庫上工作,以前的一組開發(fā)人員到處使用數(shù)組。它使代碼非常不靈活。將其大塊更改為“列表”后,我們注意到速度沒有差異。
我寫了一個基準測試來比較ArrayLists和Arrays。在我的老式筆記本電腦上,遍歷5000個元素的數(shù)組列表的時間為1000次,比同等的數(shù)組代碼慢大約10毫秒。
所以,如果你在做什么,但迭代的列表,你做了很多,那么也許它的價值的最優(yōu)化。否則,我會使用列表中,因為它會更容易,當你這樣做需要優(yōu)化的代碼。
我確實注意到使用for String s: stringsList它比使用老式的for循環(huán)訪問列表要慢50%。走吧,這是我計時的兩個功能。數(shù)組和列表中填充了5000個隨機(不同)字符串。
private static void readArray(String[] strings) { long totalchars = 0; for (int j = 0; j < IteraTIONS; j++) {totalchars = 0;for (int i = 0; i < strings.length; i++) { totalchars += strings[i].length();} }}private static void readArrayList(List<String> stringsList) { long totalchars = 0; for (int j = 0; j < IteraTIONS; j++) {totalchars = 0;for (int i = 0; i < stringsList.size(); i++) { totalchars += stringsList.get(i).length();} }}解決方法
我必須在內(nèi)存中保留數(shù)千個字符串才能以Java順序訪問。我應(yīng)該將它們存儲在數(shù)組中還是應(yīng)該使用某種List?
由于數(shù)組將所有數(shù)據(jù)保存在連續(xù)的內(nèi)存塊中(與列表不同),使用數(shù)組存儲數(shù)千個字符串會不會引起問題?
相關(guān)文章:
1. nignx - docker內(nèi)nginx 80端口被占用2. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?3. docker api 開發(fā)的端口怎么獲取?4. 關(guān)于docker下的nginx壓力測試5. dockerfile - [docker build image失敗- npm install]6. golang - 用IDE看docker源碼時的小問題7. jpa mysql 如何id自增初始值?8. html - flask后臺傳一個null到前端9. dockerfile - 我用docker build的時候出現(xiàn)下邊問題 麻煩幫我看一下10. docker網(wǎng)絡(luò)端口映射,沒有方便點的操作方法么?
