Skip to content

Latest commit

Β 

History

History
80 lines (61 loc) Β· 2.05 KB

File metadata and controls

80 lines (61 loc) Β· 2.05 KB

String class 3 - String μ΅œμ ν™”

  1. String μƒμ„±νŽΈ : String class 1 - String 생성
  2. String μ—°κ²°νŽΈ : String class 2 - String μ—°κ²°
  3. πŸ‘‰ String μ—°κ²°νŽΈ : String class 3 - String μ΅œμ ν™” πŸ‘ˆ

πŸ‘‰ String μ΅œμ ν™”

  • + μ—°μ‚°μž
  • concat()
  • StringBuffer
  • StringBuilder

+ μ—°μ‚°μž

int num = 10000;

String output = "";

long before = System.currentTimeMillis();

for (int i = 0; i < num; i++) {
    output += "a";
}
long after = System.currentTimeMillis();
System.out.println(after - before);
  • 이후 μ½”λ“œμ—μ„œλŠ” μ‹œκ°„ μΈ‘μ •/계산 μ½”λ“œλ₯Ό μƒλž΅ν•œλ‹€.

concat()

int num = 10000;

String output = "";

for (int i = 0; i < num; i++) {
    output = output.concat("a");
}

StringBuffer

int num = 10000;

StringBuffer output = new StringBuffer();

for (int i = 0; i < num; i++) {
    output.append("a");
}

StringBuilder

int num = 10000;

StringBuilder output = new StringBuilder();

for (int i = 0; i < num; i++) {
    output.append("a");
}

비ꡐ

Loop + concat() StringBuffer StringBuilder
100 15 0 0 0
1000 18 0 1 0
10000 39 17 2 1
100000 767 736 7 6
1000000 43922 56982 20 18
  • + μ—°μ‚°μžμ™€ StringBuilder의 μ„±λŠ₯은 μ—°μ‚° νšŸμˆ˜κ°€ λŠ˜μ–΄λ‚ μˆ˜λ‘ μ—„μ²­λ‚œ 차이λ₯Ό 보인닀.

πŸ‘ κ²°λ‘ 

  • λ¬Έμžμ—΄ μ—°κ²° μ‹œμ—λŠ” μ„±λŠ₯을 μ‹ κ²½μ“Έ 것.
  • κ°„λ‹¨ν•œ μ—°μ‚°μ—λŠ” + μ—°μ‚°μžκ°€ κ°„νŽΈν•  수 μžˆλ‹€.
  • μ„±λŠ₯이 걱정될 λ•ŒλŠ” + μ—°μ‚°μž λŒ€μ‹  StringBuilder.append() μ‚¬μš©ν•  것.
Reference
  • μ±… βŒœμ΄νŽ™ν‹°λΈŒ μžλ°” 2판⌟ κ·œμΉ™ 51. λ¬Έμžμ—΄ μ—°κ²° μ‹œ μ„±λŠ₯에 μ£Όμ˜ν•˜λΌ - μ‘°μŠˆμ•„ λΈ”λ‘œν¬ μ§€μŒ, μΈμ‚¬μ΄νŠΈ