문제
- 여행사에 패키지 여행 상품이 있습니다.
- 여행 비용은 15세 이상은 100만원, 그 미만은 50만원입니다.
- 고객 세 명이 패키지 여행을 떠난다고 했을 때 비용 계산과 고객 명단 검색등에 대한 연산을 스트림을 활용해 구현해 봅니다.
- 고객에 대한 클래스를 만들고 ArrayList로 고객을 관리합니다.
고객 정보
CustomerLee
이름 : 이순신
나이 : 40
비용 : 100
CustomerKim
이름 : 김유신
나이 : 20
비용 : 50
CustomerHong
이름 : 홍길동
나이 : 13
비용 : 50
- TravelCustomer.java
public class TravelCustomer {
private String name;
private int age;
private int price;
public TravelCustomer(String name, int age, int price) {
this.name = name;
this.age = age;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String toString() {
return "name : "+name+" age : "+age+" price : "+price;
}
}
- TravelCustomerTest.java
public class TravelCustomerTest {
public static void main(String[] args) {
TravelCustomer customerLee = new TravelCustomer("이순신",40,100);
TravelCustomer customerKim = new TravelCustomer("김유신",20,100);
TravelCustomer customerHong = new TravelCustomer("홍길동",13,50);
List<TravelCustomer> customerList = new ArrayList<>();
customerList.add(customerLee);
customerList.add(customerKim);
customerList.add(customerHong);
System.out.println("고객 명단 출력");
customerList.stream().map(c->c.getName()).forEach(s->System.out.println(s));
System.out.println();
System.out.println("여행 비용");
System.out.println(customerList.stream().mapToInt(c->c.getPrice()).sum());
System.out.println();
System.out.println("20세 이상 고객");
customerList.stream().filter(c->c.getAge() >= 20).map(c->c.getAge()).sorted().forEach(s->System.out.println(s));
}
}
'프로그래밍 언어 > JAVA(자바) 응용' 카테고리의 다른 글
58.예외 처리하기와 미루기 (0) | 2022.06.02 |
---|---|
57.예외처리 (0) | 2022.06.02 |
55.연산 수행에 대한 구현 reduce() 메서드 (0) | 2022.06.01 |
54.스트림(Stream) (0) | 2022.06.01 |
53.객체지향 프로그래밍 방식, 람다식 구현 방식 비교 (0) | 2022.06.01 |
댓글