본문 바로가기
Language/JAVA

[JAVA]Stream - 여행객의 여행비용 계산하기

by 바까 2020. 7. 2.
반응형

 

[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로 한명씩 출력
	}

}

[실행결과]

 


 

반응형

'Language > JAVA' 카테고리의 다른 글

[JAVA]예외 처리 미루기(throws 사용)  (0) 2020.07.02
[JAVA] 예외처리(try ~ catch)  (0) 2020.07.02
[JAVA] 스트림(Stream) 연산  (0) 2020.07.02
[JAVA]Class 클래스  (0) 2020.07.01
[JAVA] 람다식(lambda expression)  (0) 2020.07.01

댓글