| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Spring
- 자바
- 맛집
- node
- 스프링
- 자바스크립트
- effective
- 백준
- RCP
- kibana
- 리뷰
- boot
- 엘라스틱서치
- 알고리즘
- Git
- java8
- javascript
- Web
- Spring Boot
- 독후감
- nodejs
- 이펙티브
- error
- java
- JPA
- elasticsearch
- 후기
- jface
- MySQL
- 인터페이스
Archives
- Today
- Total
wedul
메서드- 규칙 46 for문 보다는 for-each 문을 사용하라 본문
반응형
기존에 배열을 순회할 때 다음과 같이 for문장을 사용하는 경우가 있다.
1 2 3 | for (int i = 0; i < a.length; i++) { doSomething(a[i]); } | cs |
새로운 변수를 선언해야 하고, 변수를 어떻게 사용하느냐에 따라 오류가 발생할 가능성도 있다.
이는 자바 1.5부터 도입된 for-each 무은 성가신 코드를 제거하고 반복자나 첨자를 변수를 완전히 제거해서 오류 가능성을 없앴다.
1 2 3 | List<string> strs = Lists.asList("dbs", "dd"); for (String str : strs) doSomething(str); | cs |
for-each 문장은 컬렉션과 배열뿐 아니라 Iterable 인터페이스를 구현하는 어떤 객체도 순회할 수 있다.
Iterable 인터페이스 메서드가 하나뿐인 아주 간단한 인터페이스이다.
그렇기에 반복이 필요한 경우 Collection 재정의는 어렵더라도 Iterable 인터페이스를 재정의하라.
요약하자면 for-each 문은 전통적인 for 문에 비해 명료하고 버그 발생 기능이 적다.
다만 정확한 index 접근이 필요한 경우거나, remove()를 중간에 호출할 수 는 없다.(이는 Iterator를 통해서 해결할 수 있다.)
출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙46인용.
반응형
'JAVA > Effective Java' 카테고리의 다른 글
| 규칙 48 - 정확한 답이 필요하다면 float와 double은 피하라 (0) | 2018.05.29 |
|---|---|
| 규칙 47어떤 라이브러리가 있는지 파악하고 적절히 활용하라 (0) | 2018.05.29 |
| 메서드- 규칙 45 지역 변수의 유효범위를 최소화하라. (0) | 2018.05.29 |
| 메서드- 규칙 43 null 대신 빈 배열이나 컬렉션을 반환하라. (1) | 2018.05.29 |
| 메서드- 규칙 42 varags는 신중히 사용하라. (0) | 2018.05.29 |
