簡體   English   中英

列表中的列表和2D數組有什么區別?

[英]What is the difference between list in a list and 2D array?

自添加項目以來,我很難確定哪個列表的時間復雜度更低。 list的bigO是否少於2D數組? 我想用它來表示約1000個頂點的無向圖和非加權圖。 它用於存儲頂點。

 List<Integer> list

VS。

 int[][] list2 

如果你談論你的列表/數組中的元素龐大的數字,你會只關心。

集合框架提供的類; 像ArrayList一樣,確實增加了一定的性能價格標簽; 與普通的舊數組相比。 因此,當您必須對一千萬個數字進行計算時; 您最好使用double []而不是ArrayList。

但是對於大多數其他用例,集合只是提供了一個更豐富的接口。 這意味着,如果您避免使用數組而轉而使用某些集合類,那么“優化”代碼的可讀性和可維護性要容易得多。 在現實世界中,這些屬性實際上比使用這些更高級的抽象層的運行時成本重要得多。

並且只是為了確保確實回答這個問題:我認為ArrayList的“ O成本”與數組相同。 因為在ArrayList的big-O中將是“ x n”; 並且數組將為“ y n”; x大於y。

因此,從概念上講,它們在同一個類中。 但從實際的角度來看,清單更昂貴。

暫無
暫無

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

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