2011-08-11 19 views
1

是否可以快速有效地清除Java(Android)中的字符數組?對治療做一個其他循環似乎是一個非常重的優化解決方案,不是嗎?Android - 快速有效地清理字符數組

很奇怪,但它是不可能找到的Java在互聯網上這樣的解決方案,而無需訂閱付費網站..

感謝的您的關注

+2

「清理char數組的含義」是什麼?將其所有值設置爲0?如果是這樣,循環是唯一的方法。 –

+0

「清理」意味着重新初始化該數組的每個值,就像它創建時一樣。我認爲,在java中,每個char數組的值都初始化爲'\ 0'。但每幀循環+20000值似乎是未優化的solutuion,這就是爲什麼我想知道是否存在更好的解決方案 – Dsandre

回答

1

爲什麼你需要首先清除char數組?

大多數希望char數組放入數據的函數(IO讀取等)會返回放入數據的長度,因此您可以忽略char數組中的其餘數據。

+0

是的,我知道,但我遇到了一些使用char數組將數據寫入文件的麻煩。這就是爲什麼我想確保我的麻煩不是來自這個陣列。我知道寫數據就夠了,但我想確定問題不在那裏。任何解決方案都可以找到關於這個主題在互聯網上的java – Dsandre

+0

你給我的解決方案彼得,謝謝。無論數據長度如何,我都寫了我的char數組。它在這個數組的文件上造成了一些麻煩。不,它的工作,再次感謝 – Dsandre

3

您可以使用:

Arrays.fill(yourArray, ' ');// or any other char instead of ' ' 

Arrays類屬於java.util包。它使用泛型,所以你可以填充任何類型的數組。

+0

請記住,fill方法將循環遍歷數組。這只是一條捷徑...但不會解決您的性能問題。 – Cristian

+0

我這麼認爲。但是,如果有任何解決方案存在這種方式至少有優點簡化了代碼 – Dsandre

0

使用a 布爾值表示您的數組無效。

+0

我不明白爲什麼我會這樣做?如何知道我的數組是否有效?一個數組包含字符,只有它們的使用可能是正確的或不是 – Dsandre

+0

而你如何知道何時清除數組?你的數組要麼被清除,要麼不被清除 - 使用布爾值來表示這個(而不是實際的'清除')。 –

+0

這個數組由數據填充每一幀,因此它的清理確保下一個數據插入不會被前一幀的剩餘位破壞 – Dsandre

0

我想知道是否預先確定一個數組的大小,這將通過各種數據大小完成,或者讓它根據接收大小發展是最好的方法?這是爲了有最快的處理。 感謝的

0

我認爲正確的答案,這個問題是設置的char []的每個字符邊做邊空字符:

Arrays.fill(buffer, (char)0); 

或者

​​

Arrays.fill(buffer, '0');將填補所有字符'0'而不是空字符的char []。