코드를 작성하다가 스크롤 바에 노란색 줄과 경고창(?)이 떠서
뭐가 문제인지 살펴봤습니다.
List<TestDTO> testdtoList = abc(5);
for(int i = 0; i < testdtoList.size(); i++){
int zz = testdtoList.get(i).getNumber();
}
엥? 뭐 추천도 아니고 왜 바꿀 수 있다고 뜨는거지...???
뭐 일단 클릭 해볼까....
클릭!!
List<TestDTO> testdtoList = abc(5);
for(TestDTO testDto : testdtoList){
int zz = testdto.getNumber();
}
경고등은 사라졌지만 의문은 사라지지 않았습니다.
대체 뭐가 다르다고 기분 찝찝하게 노란색이 뜨고 그러지??
성능이 엄청나게 차이나나??
- No! 성능차이는 거의 없습니다.
그럼 어떤 상황에서 써야할까?
- 해당 리스트나 배열을 모두 읽어야할 때!
인덱스 값을 사용 못하기 때문에 전체를 읽어야하면 향상된(개선된) for문을,
인덱스 값이 필요한 경우라면 일반 for문을 사용.
그럼 전체를 읽어야하는 상황에서 왜 향상된(개선된) for문을 권장할까?
- 코드 가독성이 좋다.
- 인덱스가 배열의 크기가 다를 경우 발생하는
arrayIndexOutofBoundsException을 방지할 수 있다.
< 정리 >
로직 특성상 index에 접근할 필요가 있다면 일반for문을,
그런 특정한 케이스가 아니라면 향상된 for문을
사용하는 쪽을 권장한다고 합니다.
'Java' 카테고리의 다른 글
[Java] String의 숫자 여부 판별하기(StringUtils, NumberUtils, Method) (0) | 2023.02.07 |
---|---|
[Java] Integer → int 캐스팅하기(Integer to int) (0) | 2023.01.11 |
[Java] Array / List / ArrayList 차이점 (3) | 2022.12.13 |
현재 시간을 ms(millisecond) 변환해서 return받기 (0) | 2022.11.02 |
[IntelliJ] 인텔리제이 주석 안됨 현상 해결 방법!("/", "¿") (0) | 2022.09.13 |