item 63 hyowon - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
๋ฌธ์์ด ์ฐ๊ฒฐ์ ๋๋ฆฌ๋ ์ฃผ์ํ๋ผ
๋ฌธ์์ด ์ฐ๊ฒฐ ์ฐ์ฐ์ +
๋ฅผ ์ฌ์ฉํจ์ ์์ด์ ๋ฌธ์์ด n๊ฐ๋ฅผ ์๋ ์๊ฐ์ n^2 ์ ๋น๋กํ๋ค.
๋ถ๋ณ์ธ ๋ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ ๊ฒฝ์ฐ ์์ชฝ์ ๋ด์ฉ์ ๋ชจ๋ ๋ณต์ฌํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฝ๋ 63-1. ๋ฌธ์์ด ์ฐ๊ฒฐ์ ์๋ชป ์ฌ์ฉํ ์ - ๋๋ฆฌ๋ค.
public String statement() {
String result += "";
for (int i = 0; i < numItems(); i++) {
result += lineForItem(i); // ๋ฌธ์์ด ์ฐ๊ฒฐ
}
}
์ฝ๋ 63-2. StringBuilder๋ฅผ ์ฌ์ฉํด ๋ฌธ์์ด ์ฐ๊ฒฐ ์ฑ๋ฅ ํฅ์
public String statement2() {
StringBuilder b = new StringBiulder(numItems() * LINE_WIDTH);
// StringBuilder๋ฅผ ์ ์ฒด ๊ฒฐ๊ณผ๋ฅผ ๋ด๊ธฐ์ ์ถฉ๋ถํ ํฌ๊ธฐ๋ก ์ด๊ธฐํ
for (int i = 0; i < numItems(); i++)
b.append(lineForItem(i));
return b.toString();
}
ํ๋ชฉ์ 100๊ฐ๋ก ํ๊ณ lineForItem์ด ๊ธธ์ด 80์ธ ๋ฌธ์์ด์ ๋ฐํํ๊ฒ ํ์ฌ ์คํํ ๊ฒฐ๊ณผ ์ ์์ PC์์ ์ฝ๋ 1๊ณผ 2์ ์๋ ์ฐจ์ด๋ 6.5๋ฐฐ์ด๋ค.
๋ฌธ์์ด ์ฐ๊ฒฐ ์ฐ์ฐ์ +
์ ์ํ ์๊ฐ์ n^2์ ๋น๋กํ๋ฏ๋ก statement์ statement2์ ์ฑ๋ฅ ๊ฒฉ์ฐจ๋ ์ ์ ๋ฒ์ด์ง ๊ฒ์ด๋ค.
๊ฒฐ๋ก
๋ง์ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ ๋๋ ๋ฌธ์์ด ์ฐ๊ฒฐ ์ฐ์ฐ์ +
๋ฅผ ํผํ์.