所以我有這段代碼:操縱一個StringBuilder在java的一個StringBuilder陣列
StringBuilder[] a = new StringBuilder[5];
Arrays.fill(a, new StringBuilder("asdfg"));
a[0].deleteCharAt(0);
for (StringBuilder s : a) {
System.out.println(s);
}
和輸出
sdfg
sdfg
sdfg
sdfg
sdfg
看來,陣列中的所有元件是與一個參考同樣的StringBuilder對象,我猜是因爲Arrays.fill()。爲什麼會發生這種情況,我該如何解決這個問題? p.s:我不想使用循環,因爲fill()的行爲與StringBuilder []的行爲不同,我想了解原因。
你什麼意思「fill()的行爲與StringBuilder []」的行爲不同,我相信它不會。 – daniu
你能說明'StringBuilder'有什麼不同嗎?你能提供一個帶有*不同類別的樣本嗎?這會產生不同的結果嗎? –