Language/JAVA
[JAVA]Stream - 여행객의 여행비용 계산하기
바까
2020. 7. 2. 11:52
반응형
[TravelCustomer 클래스]
: 고객의 정보를 담을 클래스
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;
}
//get(), set() 메서드 정의
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;
}
//고객의 이름, 나이, 가격을 출력하기 위한 메소드
@Override
public String toString() {
// TODO Auto-generated method stub
return name+","+age+","+price;
}
}
[메인클래스]
public class TravelTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//고객생성
TravelCustomer customerA = new TravelCustomer("라이언", 20, 1000);
TravelCustomer customerB = new TravelCustomer("어피치", 25, 2000);
TravelCustomer customerC = new TravelCustomer("무지", 10, 500);
//ArrayList를 생성하여추가
List<TravelCustomer> customerList = new ArrayList<>();
customerList.add(customerA);
customerList.add(customerB);
customerList.add(customerC);
//고객 이름 출력
customerList.stream().map(c -> c.getName()).forEach(s -> System.out.println(s));
System.out.println();//개행
//여행의 총비용 계산
int sum = customerList.stream().mapToInt(c -> c.getPrice()).sum();
System.out.println(sum);
System.out.println();//개행
//20세 이상인 고객 이름을 출력
customerList.stream().filter(c -> c.getAge() >= 20).map(
c -> c.getName()).sorted().forEach(s -> System.out.println(s));
//나이가 20세 이상인 사람만 filter로 추출, map으로 추출된 사람의 이름을 반환,
//오름차순으로 정렬 sorted(), forEach로 한명씩 출력
}
}
[실행결과]
반응형