728x90
반응형

스트림(Stream)의 정의

스트림은 Java8부터 추가된 컬렉션(배열 포함)의 저장 요소(Element)를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자

 


Stream 활용하기

 

클래식 자바 스타일 예시(컬렉션 활용)👇

List<Product> lowPriceProduct = new ArrayList<>();

// 가격이 9000원 이하인 상품만 가지고 옴
for(Product product : item) {
	if(store.getPrice() < 9000) { lowPriceProduct.add(product); }
}

// 가격 순으로 정렬
Collections.sort(lowPriceProduct, new Comparator<Dish>() {
	@Override
    public int compare(Dish o1, Dish o2) {
   		return Integer.compare(o1.getPrice(), o2.getPrice()); } 
});

// 상품 이름만 가지고 옴
List<String> lowPriceProductName = new ArrayList<>();
for(Product product : lowPriceProduct) { lowPriceProductName.add(product.getName()); }

// 상위 3개의 결과만 반환
List<String> lowPriceLimit3ProductName = lowPriceProductName.subList(0, 3);
System.out.println(lowPriceLimit3ProductName);

 

Stream API 활용 예시 👇

List<String> lowPriceProductNames = item.stream()
		.filter(item -> item.getPrice() < 9000)
        .sorted(Comparator.comparing(Product::getPrice)
        .map(Dish::getName)
        .limit(3)
        .collect(Collectors.toList());
        
System.out.println(lowPriceProductNames);
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[Java] Collection과 Stream 비교  (0) 2022.03.21
[Java] 스트림(Stream)의 특징  (0) 2022.03.18
[Java] 함수형 인터페이스  (0) 2022.03.15
[Java] 람다식의 특징 및 장단점  (0) 2022.03.14
[Java] 람다식이란?  (0) 2022.01.28
복사했습니다!