Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 0.25px border
- TS
- 데이터베이스 #try #이중
- 0.5px border
- es6
- 타입스크립트
- jwt
- Props
- ZOOM
- literal
- angular
- github
- 0.75px border
- ES5
- 전역변수
- 클론코딩
- 문서번호
- 으
- 당근마켓
- entity
- TypeScript
- 1px border
- npm
- &연산
- font-size
- Strict
- Websocket
- 10px
- 컴포넌튼
- 서버리스 #
Archives
- Today
- Total
복잡한뇌구조마냥
[JAVA] 반복문 간결하게 쓰는 법 - 람다와 메서드 참조로 리팩토링 본문
☕ 자바 스트림과 람다 표현식의 간소화 과정
람다 표현식을 처음 접하면 -> 기호에 낯설 수도 있지만, 반복적인 코드를 훨씬 간결하고 읽기 쉽게 만들 수 있습니다. 이번 글에서는 반복문을 스트림과 람다로 점진적으로 간소화해보는 과정을 소개합니다.
✅ 1. 전통적인 반복문
for (int i = 1; i <= 5; i++) {
System.out.println(i + "번째 반복문");
}
- 익숙하지만 반복 변수를 직접 관리해야 합니다.
- 병렬 처리나 함수형 스타일로 확장하기 어렵습니다.
✅ 2. 스트림 사용 + 익명 클래스
IntStream.rangeClosed(1, 5)
.forEach(new IntConsumer() {
@Override
public void accept(int value) {
System.out.println(value + "번째 반복문");
}
});
- IntStream.rangeClosed(1, 5)으로 숫자 범위를 스트림으로 생성
- IntConsumer를 구현한 익명 내부 클래스 사용
✅ 3. 람다 표현식
IntStream.rangeClosed(1, 5)
.forEach((int value) -> {
System.out.println(value + "번째 반복문");
});
- 익명 클래스를 람다 표현식으로 간소화
- 타입 명시 가능하지만 생략도 가능함
✅ 4. 람다식 간소화
IntStream.rangeClosed(1, 5)
.forEach(value -> System.out.println(value + "번째 반복문"));
- 매개변수 타입 생략
- 중괄호도 한 줄이면 생략 가능
- 가장 간결한 형태의 람다
✅ 5. 인스턴스 메서드 참조
IntStream.rangeClosed(1, 5)
.forEach(System.out::println);
- 여기서는 "n번째 반복문"이 아닌 숫자만 출력됩니다.
- System.out은 PrintStream의 인스턴스이며, println은 인스턴스 메서드입니다.
- 따라서 특정 객체의 인스턴스 메서드 참조입니다.
📎 전체 코드
import java.util.function.IntConsumer;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
System.out.println("1. 스트림 미사용");
for (int i = 1; i <= 5; i++) {
System.out.println(i + "번째 반복문");
}
System.out.println("2. 스트림 사용");
IntStream.rangeClosed(1, 5)
.forEach(new IntConsumer() {
@Override
public void accept(int value) {
System.out.println(value + "번째 반복문");
}
});
System.out.println("3. 람다 표현식 사용");
IntStream.rangeClosed(1, 5)
.forEach((int value) -> {
System.out.println(value + "번째 반복문");
});
System.out.println("4. 람다식 간소화");
IntStream.rangeClosed(1, 5)
.forEach(value -> System.out.println(value + "번째 반복문"));
System.out.println("5. 인스턴스 메서드 참조 (특정 객체의 인스턴스 메서드)");
IntStream.rangeClosed(1, 5)
.forEach(System.out::println);
}
}
✍️ 마무리
람다 표현식과 스트림을 적절히 사용하면 코드가 짧고 명확하며,
가독성 높은 함수형 스타일로 바꿀 수 있습니다.
LIST
'BE > JAVA' 카테고리의 다른 글
[JAVA] Effective Java - clone 재정의는 주의해서 진행하라 (13) (4) | 2025.08.03 |
---|---|
[JAVA] Effective Java - 다 쓴 객체 참조를 해제하라 (7) (3) | 2025.08.03 |
[JAVA] 구성 ( Composition ) (0) | 2025.07.29 |
[JAVA] 스트림 ( Stream ) (0) | 2025.07.28 |
[JAVA] 자주 사용하는 자료형 핵심 메소드 정리 (1) | 2025.07.14 |