20220820
한 번에 끝내는 Java/Spring 웹 개발 마스터
1) Stream 예제
package ch07;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class TravelCustomerTest {
public static void main(String[] args) {
TravelCustomer cutomerLee = new TravelCustomer("이순신", 40, 100);
TravelCustomer cutomerKim = new TravelCustomer("김유신", 20, 100);
TravelCustomer cutomerHong = new TravelCustomer("홍길동", 13, 50);
List<TravelCustomer> customerlist = new ArrayList<>();
customerlist.add(cutomerLee);
customerlist.add(cutomerKim);
customerlist.add(cutomerHong);
System.out.println("== 고객 명단 추가된 순서대로 출력 ==");
customerlist.stream().map(c -> c.getName()).forEach(s->System.out.println(s));
System.out.println("\n== 여행 비용 ==");
int total = customerlist.stream().mapToInt(c->c.getPrice()).sum();
System.out.println("총 여행 비용은 :" + total + "입니다");
System.out.println("\n== 20세 이상 고객 명단 정렬하여 출력 ==");
customerlist.stream().filter(c->c.getAge() >= 20).map(c->c.getName()).sorted().forEach(s->System.out.println(s));
}
}
- Stream을 이용해서, 고객을 arrayList에 추가하고, 이름과 여행 비용, 20세 이상 고객의 이름을 출력하는 문제이다.
- map(), filter(), mapToInt(), forEach()등등의 메소드를 활용하는 것이 어려웠다.
- 람다식을 제대로 이용하지 못 하면 Stream을 출력함에 있어서 어려움이 있는듯 하다.