
filter, map 포함)List<String> list = Arrays.asList("Java", "Python", "C++");
Stream<String> stream = list.stream();List<String> list = Arrays.asList("Java", "Python", "C++");
Stream<String> stream = list.stream();Stream<Integer> intStream = Arrays.stream(new Integer[]{1, 2, 3, 4});Stream<Integer> intStream = Arrays.stream(new Integer[]{1, 2, 3, 4});Stream<String> stream = Stream.of("a", "b", "c");Stream<String> stream = Stream.of("a", "b", "c");filter (필터)true인 요소만 다음 단계로 전달.filter(element -> 조건식).filter(element -> 조건식)List<String> languages = Arrays.asList("Java", "Python", "JavaScript", "C++");
languages.stream()
.filter(s -> s.startsWith("J")) // 'J'로 시작하는 요소만 통과
.forEach(System.out::println); // 출력: Java, JavaScriptList<String> languages = Arrays.asList("Java", "Python", "JavaScript", "C++");
languages.stream()
.filter(s -> s.startsWith("J")) // 'J'로 시작하는 요소만 통과
.forEach(System.out::println); // 출력: Java, JavaScriptmap (맵).map(element -> 변환식).map(element -> 변환식)List<String> fruits = Arrays.asList("apple", "banana", "orange");
fruits.stream()
.map(String::toUpperCase) // 모든 문자열을 대문자로 변환
.forEach(System.out::println); // 출력: APPLE, BANANA, ORANGEList<String> fruits = Arrays.asList("apple", "banana", "orange");
fruits.stream()
.map(String::toUpperCase) // 모든 문자열을 대문자로 변환
.forEach(System.out::println); // 출력: APPLE, BANANA, ORANGEfilter 와 map 함께 사용하기List<String> languages = Arrays.asList("Java", "Python", "JavaScript", "C++");
languages.stream()
.filter(s -> s.startsWith("J")) // 'J'로 시작하는 요소만 필터링
.map(String::toUpperCase) // 대문자로 변환
.forEach(System.out::println); // 출력: JAVA, JAVASCRIPTList<String> languages = Arrays.asList("Java", "Python", "JavaScript", "C++");
languages.stream()
.filter(s -> s.startsWith("J")) // 'J'로 시작하는 요소만 필터링
.map(String::toUpperCase) // 대문자로 변환
.forEach(System.out::println); // 출력: JAVA, JAVASCRIPT| 메서드 | 설명 | 예시 |
filter | 조건에 맞는 요소만 필터링 | .filter(s -> s.startsWith("J")) |
map | 요소를 다른 형태로 변환 | .map(String::toUpperCase) |
sorted | 정렬 | .sorted() |
distinct | 중복 제거 | .distinct() |
limit | 개수 제한 | .limit(3) |
주요 최종 연산 메서드
| 메서드 | 설명 | 예시 |
forEach | 각 요소에 동작 수행 | .forEach(System.out::println) |
collect | 결과를 컬렉션 등으로 모음 | .collect(Collectors.toList()) |
count | 요소 개수 반환 | .count() |
reduce | 누적 연산 수행 | .reduce((a, b) -> a + b) |
anyMatch | 조건에 맞는 요소 존재 여부 확인 | .anyMatch(s -> s.contains("a")) |
import java.util.Arrays;
import java.util.List;
public class StreamExample1 {
public static void main(String[] args) {
List<String> languages = Arrays.asList("Java", "Python", "JavaScript", "C++", "Ruby");
// "J"로 시작하는 언어만 필터링 후 출력
languages.stream()
.filter(s -> s.startsWith("J")) // 조건에 맞는 요소만 선택
.forEach(System.out::println); // 출력
}
}import java.util.Arrays;
import java.util.List;
public class StreamExample1 {
public static void main(String[] args) {
List<String> languages = Arrays.asList("Java", "Python", "JavaScript", "C++", "Ruby");
// "J"로 시작하는 언어만 필터링 후 출력
languages.stream()
.filter(s -> s.startsWith("J")) // 조건에 맞는 요소만 선택
.forEach(System.out::println); // 출력
}
}import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample2 {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange", "apple");
// 중복 제거, 대문자로 변환 후 리스트로 수집
List<String> result = fruits.stream()
.distinct() // 중복 제거
.map(String::toUpperCase) // 대문자 변환
.collect(Collectors.toList()); // 결과 리스트 생성
System.out.println(result); // [APPLE, BANANA, ORANGE]
}
}import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample2 {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange", "apple");
// 중복 제거, 대문자로 변환 후 리스트로 수집
List<String> result = fruits.stream()
.distinct() // 중복 제거
.map(String::toUpperCase) // 대문자 변환
.collect(Collectors.toList()); // 결과 리스트 생성
System.out.println(result); // [APPLE, BANANA, ORANGE]
}
}import java.util.Arrays;
import java.util.List;
public class StreamExample3 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 모든 숫자 더하기
int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println("합계: " + sum); // 합계: 15
}
}import java.util.Arrays;
import java.util.List;
public class StreamExample3 {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 모든 숫자 더하기
int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println("합계: " + sum); // 합계: 15
}
}.parallelStream() 사용int sum = numbers.parallelStream()
.reduce(0, Integer::sum);int sum = numbers.parallelStream()
.reduce(0, Integer::sum);