문제
내가 작성한 정답
class Solution {
public double solution(int[] numbers) {
double answer = 0;
for(int number: numbers){
answer += number;
}
return (double)answer/numbers.length;
}
}
다른 사람들의 풀이
import java.util.Arrays;
class Solution {
public double solution(int[] numbers) {
return Arrays.stream(numbers).average().orElse(0);
}
}
스트림
Java 8에서 도입된 기능으로, 데이터 처리를 간소화하고 함수형 프로그래밍 스타일을 Java에 도입한 중요한 요소이다. 컬렉션(List, Set, Map 등)이나 배열의 데이터를 효율적이고 선언적으로 처리할 수 있도록 도와준다.
- Stream: 데이터를 처리하기 위한 연속적인 데이터 흐름.
- 중간 연산: 데이터 변환 및 필터링 (지연 실행).
- 터미널 연산: 최종 결과 생성 (스트림 처리 시작).
- 컬렉션이나 배열에서 스트림 생성이 가능하다.
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
- 중간 연산: 스트림에서 데이터를 변환하거나 필터링하는 작업으로 지연(lazy) 방식으로 실행된다.
Stream<String> filtered = stream.filter(s -> s.startsWith("a"));
- 터미널 연산: 스트림의 최종 결과를 생성하는 작업으로 터미널 연산이 실행되면 스트림의 처리가 시작된다.
filtered.forEach(System.out::println); // "a" 출력
import java.util.Arrays;
import java.util.List;
public class StreamExample {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "avocado", "blueberry");
list.stream() // 스트림 생성
.filter(s -> s.startsWith("a")) // 'a'로 시작하는 단어 필터링
.forEach(System.out::println); // 결과 출력
}
}
Share article