我有字符串數組str[10][3]
,它充滿了值。 現在我想讓它變爲空即。刪除str
的所有值。 我已經將str
定義爲static,我也想從同一個包中的另一個claas中清空此字符串。 我可以在這裏使用null
。在java中刪除二維數組中的所有數據
Plz建議某種方式。謝謝
我有字符串數組str[10][3]
,它充滿了值。 現在我想讓它變爲空即。刪除str
的所有值。 我已經將str
定義爲static,我也想從同一個包中的另一個claas中清空此字符串。 我可以在這裏使用null
。在java中刪除二維數組中的所有數據
Plz建議某種方式。謝謝
當然,您可以使用null
,但首先想知道是否真的需要使它們無效,因爲空值大多會產生問題並需要特殊處理。您可以使用空字符串""
以避免出現NullPointerExceptions
問題。
只是重新分配一個新的陣列同一個變量會做的伎倆,Java將照顧有關收集garbaged數據:
ClassName.str = new String[10][3];
我想他想要的字符串標記爲垃圾回收 – Adrian 2012-03-15 04:55:18
@adrian我不想要字符串標記爲垃圾回收,我只是想重新啓用它們,並在重用它們之前我必須確認該字符串是空的。 – 2012-03-15 05:06:02
@jack ...嘿謝謝很多..它的作品... !!! :) – 2012-03-15 05:09:06
str = new String[10][3];
將分配一個空的2D陣列到str
。
總是可以設置一個值,只要爲null,因爲它是沒有基本類型(int,char,boolean,...)或只讀值。我認爲它們都不是,所以答案是肯定的。
因此,一個解決辦法是:
str = null;
如果你要填寫你的結構有新的價值觀,你可以使用
str = new String[10][3];
,但是我不明白爲什麼你應該做的,這不是因爲你不需要你應該擺脫它的數據。此外,在新的str
中也有數據(最初的null
-字符串)。但是如果你不想將新數據存儲到結構中,那麼這樣做沒有問題。這種範例有時被稱爲「懶惰」。這意味着:「除非你絕對不得不去做任何事情」
通過設置null
數據不會立即消失。它是由垃圾收集器清除的。一個程序只能以低頻運行,或者程序需要內存。在這種情況下,它會將內存標記爲空閒,以便可以重用。
您是否嘗試*刪除對數組的引用('str = null'),或者遍歷每個元素並將其設置爲'null'? – Makoto 2012-03-15 04:48:53
爲什麼你想刪除所有的字符串?你會再次使用它們嗎?對於你的問題可能有更好的解決方案,而不是全部設置爲''''或'null'(你可以這樣做)。 – Deco 2012-03-15 04:50:37
@Makoto和Deco我重複使用前檢查了空字符串,因此強制它們爲空。 – 2012-03-15 05:02:11