람다를 이용해서
스트림 파이프라인
1) 스트림의 생성. 스트림 인스턴스 생성. stream()
2) 중간 연산. 필터링, 맴핑, 등등 원하는 결과를 만들어내는 과정.
3) 최종 연산
// 1. order에서 List<OrderCoffee> 를 가지고 와서
Set<OrderCoffee> orderCoffees = order.getOrderCoffees();
// 2. List<OrderCoffee>를 순회하며
List<Coffee> coffeeList = new ArrayList<>();
for(OrderCoffee orderCoffee: orderCoffees) {
// 3. coffeeId 를 가지고 온 뒤,
long currentCoffeeId = orderCoffee.getOrderCoffeeId();
// 4. 해당 coffeeId 로 Coffee 객체를 찾은 후에
Coffee currentCoffee = findVerifiedCoffee(currentCoffeeId);
// 5. 해당 coffee 를 list 에 넣습니다.
coffeeList.add(currentCoffee);
}
// Order 에서 OrderCoffee 를 데리고 옴.
// .stream() : 스트림을 쓰겠다.
List<Coffee> coffees = order.getOrderCoffees().stream()
// map을 쓰는데, orderCoffeeId라는 요소로 mapping 할 것이다.
// 이 요소는 .getCoffeeId() 로 Id를 데리고 온 Long 들을 가공하여 mapping 할 것.
.map(orderCoffeeId -> orderCoffeeId.getCoffeeId())
// coffee 라는 요소들의 이름으로 mapping 할 것이다.
// 이 요소는 findVerifiedCoffee() 로 coffeeId 를 coffee 객체로 바꾼 것.
// 요소를 가공할 것이다.!
.map(coffee -> findVerifiedCoffee(coffee))
.collect(Collectors.toList());
List<Coffee> coffeeList1 = order.getOrderCoffees().stream()
// coffee 는 요소 이름 일 뿐이다. element.
.map(coffee -> findVerifiedCoffee(coffee.getCoffeeId()))
.collect(Collectors.toList());
'Language > Java' 카테고리의 다른 글
[Java] 멀티스레드, 멀티태스킹, 스레드 (1) | 2025.04.20 |
---|---|
[Java] Optional (1) | 2024.07.06 |
[Java] boolean , if문 (0) | 2024.06.08 |
[Java] 기타 제어자 (1) | 2024.06.08 |
[Java] 메소드 관계 파악 (0) | 2024.06.07 |