public class Repeat {
public static void main(String[] args) {
// String 및 StringBuilder 호출
String str = "Hello";
StringBuilder sb = new StringBuilder();
// 반복문을 사용하여 문자열 반복
for(int i = 0; i < 3; i++)
{
sb.append(str);
}
// 결과 출력 -> for문
System.out.println("for문 : " + sb);
// 결과 출력 -> repeat 사용
System.out.println("repeat문 : " + str.repeat(3));
}
}
repeat 문을 사용하면 문자열을 쉽게 반복할 수 있다.
하지만 repeat문은 아쉽게도 자바 11버전부터 사용할 수 있다.
public void example(List<Integer> numbers) {
for (int i = 0; i < numbers.size(); i++) {
...
}
}
numbers의 size를 for문 돌때마다 체크하기때문에 매우 안좋음
public void example(List<Integer> numbers) {
int numbersSize = numbers.size();
for (int i = 0; i < numbersSize; i++) {
...
}
}
public void example(List<Integer> numbers) {
for (int number : numbers) {
...
}
}
반복문은 어떤 애플리케이션을 개발하더라도 반드시 사용해야 하는 부분이다. 성능에 영향을 미치는 큰 요소인 만큼 불필요한 반복이 있지 않은지, 최선의 반복문인지 항상 고민해야 한다고 생각한다. 성능의 차이가 미미할지라도 어떤 상황에서는 큰 영향을 미칠지 모른다. 이 글의 내용을 참고해서 상황에 따라 어떤 반복문을 사용하면 좋을지 항상 고민해보는 습관을 지니면 좋을 것 같다.
안녕하세요.
List 구현체마다 차이는 있겠으나, 주로 사용되는 ArrayList, LinkedList 는 내부에 size 를 변수로 가지고 있기 때문에 size() 호출 시 마다 실제 길이를 체크하는 부하는 없습니다. 대부분의 List 구현체가 size() 호출에 대해 최적화를 해놓았으니 걱정말고 쓰셔도 됩니다.