도입
JAVA에서 문자열을 합치는 방법에는 여러가지가 있다.
각 방법에 대해 시간을 비교해보자.
공통 테스트용 문자열
다음 문자열을 계속해서 연결할 것이다.
final static String test = "test";
+연산자
// + 연산자를 이용한 문자열 합치기
public static void plusOperation(int loop) {
String result = "";
long startTime = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
result += test;
}
long endTime = System.currentTimeMillis();
System.out.println("plusOperation::걸린 시간" + (endTime - startTime));
}
String 클래스의 concat() 메서드 활용
// concat 메소드를 이용한 문자열 합치기
public static void concatMethod(int loop) {
String result = "";
long startTime = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
result.concat(test);
}
long endTime = System.currentTimeMillis();
System.out.println("concatMethod::걸린 시간" + (endTime - startTime));
}
String 클래스의 format() 메서드 활용
// format 메소드를 이용한 문자열 합치기
public static void formatMethod(int loop) {
String result = "";
long startTime = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
result = String.format("%s%s", result, test);
}
long endTime = System.currentTimeMillis();
System.out.println("formatMethod::걸린 시간" + (endTime - startTime));
}
StringBuffer 클래스의 append() 메서드 활용
// append 메소드를 이용한 문자열 합치기
public static void appendMethod(int loop) {
StringBuffer result = new StringBuffer();
long startTime = System.currentTimeMillis();
for (int i = 0; i < loop; i++) {
result.append(test);
}
long endTime = System.currentTimeMillis();
System.out.println("appendMethod::걸린 시간" + (endTime - startTime));
}
결과
1,000,000회 반복했을 때
=======100000회 반복======
plusOperation::걸린 시간4456
concatMethod::걸린 시간5
formatMethod::걸린 시간7392
appendMethod::걸린 시간4
append 메소드
<<concat 메소드
<<+ 연산자
<<foramt 메소드
100,000,000회 반복했을 때
plus메소드와 format메소드는 시간이 오래걸려
append메소드, concat 메소드만 체크하였다.
=======10000000회 반복======
concatMethod::걸린 시간153
appendMethod::걸린 시간109
1,000,000회 반복했을 때는 두 메소드의 차이가 유사했으나, 반복횟수가 많아지면 append메소드가 빠르게 동작
한다.
Uploaded by N2T
'Programming > [Java]' 카테고리의 다른 글
[JAVA/EXCEPTION] Class ConcurrentModificationException (0) | 2022.10.24 |
---|---|
Java 이클립스 톰캣 서버 연결 (0) | 2021.09.03 |
GUI Java 오목 프로그램 (2) | 2021.07.20 |