簡體   English   中英

Java - > Scala,收藏品上的表演

[英]Java -> Scala, performances on collections

在Java中,根據集合的用法,我們不使用相同的實現(即ArrayList vs LinkedList)。

來自Java背景,有人可以告訴我,我應該了解Scala集合和性能注意事項嗎?

似乎Scala List的不可變版本是某種不可變的LinkedList。 我在Coursera的Martin Odersky課程之后理解這些概念。 以同樣的方式,我理解為什么prepend比追加更有效,特別是當你有一個不可變列表時。

我想知道關於Scala收集表演的所有(或大多數)這些棘手的事情,所以我自己並不是很難找到它。 有人能幫我嗎?

謝謝

有一個描述集合性能特征的文檔。 除此之外,您真的應該在微基准測試中測試您的用例。 在某些情況下,Scala集合在性能上與Java非常接近; 在其他方面存在差距(例如地圖); 在其他情況下,沒有Java模擬,並且不可變與可變的比較在很大程度上取決於您如何使用該集合(顯然,重要的突變有利於可變集合,以及大量重用/復制有利於不可變集合)。

這並沒有具體回答你的問題,但對於一般用途,我認為你不會注意到java和scala集合之間的區別。 我至少沒有注意到它:)一般來說,我認為人們過早地通過擔心這些事情進行優化(盡管你可能有一個完全有效的用例需要優化)。

就個人而言,由於他們的API,我更喜歡使用scala集合而不是java集合,而且因為我從未遇到過性能問題,所以我從未真正研究過java vs scala基准測試。

正如雷克斯所說,如果你擔心它(或者只是想知道),那么為你的特定用例設置基准將是有用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM