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 |