728x90
StringBuilder에는 clear()메서드가 없다.
List, Set, Queue와 같이 무언가를 담는 클래스에는 clear()가 있는데, 문자열을 담는 StringBuilder 에는 clear가 없어서 비우는 방법에 대해 찾아봤다.
1. sb = new StringBuilder()
StringBuilder sb = new StringBuilder();
sb.append("a");
sb.append("b");
sb.append("c");
sb = new StringBuilder();
비울 수 없다면 그냥 버리고 새로만들자! 하는 방법이다.
글쓴이는 항상 이 방법으로 StringBuilder를 초기화해줬다.
2. sb.setLength(0) - 가장 빠름
StringBuilder sb = new StringBuilder();
System.out.println(sb.capacity());
sb.append("a");
sb.append("b");
sb.append("c");
sb.setLength(0);
System.out.println(sb.capacity());
길이를 0으로 만드는 방법이다. capacity도 유지되면서 값을 초기화할 수 있다.
가장 빠르게 초기화할 수 있는 방법이라고 한다.
3. sb.delete(0, sb.length())
StringBuilder sb = new StringBuilder();
sb.append("a");
sb.append("b");
sb.append("c");
sb.delete(0, sb.length());
일일이 다 지우는 방법이다
딱봐도 성능이 제일 나쁠 것 같다
실험을 통해 다음 3개를 비교하신 블로그가 있다.
https://jaehoney.tistory.com/78
생각보다 새로 객체를 만드는 게 시간이 많이 드는 것 같다.
반복문을 사용하면서 매번 초기화해줘야한다면 setLength(0)을 사용하는 게 좋을 것 같다.
728x90
'프로그래밍 언어 > Java' 카테고리의 다른 글
[JAVA] 단위테스트 공부1: Mock 알아보기 (1) | 2023.10.29 |
---|---|
[JAVA] public private 메소드 정렬 순서 결정하는법 (0) | 2023.10.28 |
[JAVA] split vs StringTokenizer (1) | 2023.10.28 |
[Java] 자바 코드 컨벤션 정리(Google Java Style Guide) (0) | 2023.10.18 |
[JAVA] StringBuffer와 StringBuilder의 차이점 (0) | 2023.10.11 |