簡體   English   中英

兩個單獨的陣列或單個2D陣列。 哪個更好?

[英]Two separate arrays or a single 2D array. Which is better?

因此,我正在處理一個包含人物姓名,位置等的字符串。由於我在Android中進行開發,因此哪種數組在內存使用方面更好。

我的猜測是2D陣列將占用更多內存。 例如:人數為5,位置數為1。因此,如果我初始化一個2D數組,它將為2x5。 其中[0] [x]用於人物,[1] [x]用於位置。 因此,這意味着[1] [1]-[1] [4]將不會使用,並且為空。 但是系統將為這些索引保留內存。

因此,兩個單獨的數組更好。

如果我錯了糾正我。

首先,不要過早樂觀。 使用易於理解的數據結構來節省開發和錯誤修復的時間可能比使用緊湊型內存帶來的任何好處都要多。 (Erwin對課程的評論是相關的)。

除此之外,單個陣列更緊湊。 數組分配為24個字節,即使它們為空。

在Java中,沒有“ 2d”數組:只有1d數組,但是它們可以是數組的數組(可以是數組的數組,等等)。

創建2d數組會創建多個1d數組來保存您的元素,然后創建一個數組來保存對這些數組的引用。 這是一個對象,它本身帶有一些開銷以及特定於數組的內容(例如長度)。

使用單獨的一維數組意味着您自己擁有對這些數組的引用。

因此,通過擁有單獨的陣列可以節省一些費用,因為您不必存儲存儲額外陣列所需的gubbins。

但是 ,除非要創建大量成對的這些數組,否則差異不太重要。 堅持使用最合理,最易讀的代碼。

暫無
暫無

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

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