728x90
반응형
SMALL
안녕하세요! 😊
오늘은 Java의 스트림(Stream)과 람다(Lambda) 표현식에 대해 이야기해볼게요.
이 두 가지를 활용하면 코드가 짧아지고, 직관적이면서도 강력한 기능을 구현할 수 있답니다.
초보 개발자분들도 쉽게 따라 할 수 있도록 간단한 예제와 용어 설명을 준비했어요. 함께 시작해볼까요? 🚀
🌟 스트림(Stream)이란?
스트림은 Java 8에서 도입된 기능으로, 데이터 컬렉션(리스트, 배열 등)을 처리하는 방법이에요.
데이터를 필터링, 변환, 집계할 때 유용하며, 데이터 흐름을 다룬다고 생각하시면 됩니다.
💡 특징
- 데이터 원본을 변경하지 않아요.
- 선언적 스타일을 사용해 가독성이 좋아요.
- 내부 반복을 사용해 병렬 처리에도 강력해요.
🌟 람다(Lambda)란?
람다는 익명 함수를 나타내는 Java 표현식이에요.
한 줄의 간단한 코드를 작성해 함수형 프로그래밍 스타일을 구현할 수 있답니다.
💡 문법
(매개변수) -> { 실행 코드 }
예를 들어, 숫자 리스트를 순회하며 각 숫자를 출력한다고 하면:
numbers.forEach(n -> System.out.println(n));
🌈 스트림과 람다를 함께 사용해볼까요?
예제 1: 리스트의 짝수 필터링
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
// 짝수만 필터링
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0) // 조건에 맞는 요소만 필터링
.collect(Collectors.toList());
System.out.println(evenNumbers); // 출력: [2, 4, 6]
}
}
용어 설명:
- filter(): 조건에 맞는 데이터만 선택.
- collect(): 스트림의 데이터를 특정 컬렉션(List 등)으로 변환.
예제 2: 문자열 리스트 정렬 후 출력
import java.util.Arrays;
import java.util.List;
public class StreamSortingExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
// 알파벳 순으로 정렬
names.stream()
.sorted()
.forEach(System.out::println); // 출력: Alice, Bob, Charlie
}
}
용어 설명:
- sorted(): 스트림 데이터를 정렬.
- forEach(): 각 요소를 반복 처리.
🏆 스트림과 람다의 장점
- 간결한 코드: 복잡한 루프와 조건문을 줄일 수 있어요.
- 가독성 향상: 선언적 코드는 읽고 이해하기 쉬워요.
- 병렬 처리 지원: 대량 데이터 처리 성능이 향상돼요.
초보 개발자 여러분께 😊
스트림과 람다를 처음 배울 때는 낯설고 복잡해 보일 수 있어요.
하지만, 몇 번만 연습해도 훨씬 효율적인 코드를 작성할 수 있다는 즐거움을 느끼실 거예요!
작은 코드부터 시작해서 익숙해지세요. 여러분을 응원합니다! 💪
반응형
SMALL
'JAVA' 카테고리의 다른 글
초보자를 위한 Java 제네릭 가이드: 쉽게 배우는 코드 재사용 (0) | 2024.12.20 |
---|---|
Java 메서드 오버로딩과 오버라이딩: 초보자를 위한 쉬운 설명과 예제 (0) | 2024.12.19 |
메모리 관리의 핵심! Java Garbage Collection 쉽게 이해하기 (0) | 2024.12.19 |
Java 객체지향 원칙 완벽 가이드: 캡슐화, 상속, 다형성, 추상화 쉽게 배우기 (0) | 2024.12.19 |
Java 제어문 초보자 가이드: if, switch, for, while 쉽게 배우기 (0) | 2024.12.18 |