JAVA/java 예시

[JAVA] 여행고객명단 : 명단출력 / 비용계산 / 조건에 맞는 명단만 출력

congs 2023. 9. 12. 01:15

여행고객명단 : 명단출력 / 비용계산 / 조건에 맞는 명단만 출력

import java.util.ArrayList;

public class Customar_travel {

	public static void main(String[] args) {
		ArrayList<Customar> list = new  ArrayList<>();
		list.add(new Customar("이순신",40));
		list.add(new Customar("신사임당",35));
		list.add(new Customar("이아들",10));
		
		//고객 명단
		System.out.println("--전체 비용 명단--");
		list.stream().forEach(n->{
			String name = n.getName();
			int age = n.getAge();
			int price = n.getPrice();
			System.out.println(name+"("+age+")"+"/ 비용: "+price);
		});
		//전체 비용 계산
		System.out.println("--전체 비용--");
		int sum = list.stream().mapToInt(h->h.getPrice()).sum();
		System.out.println("비용: "+sum);
		
		//20세 이상의 성인만 출력
		System.out.println("--20세 이상 성인 명단--");
		
		//바로.sort 사용시 여러 값이 들어간 Customar이므로 error발생!
		//1. 이름만 출력하는 경우
		list.stream().filter(h->h.getAge()>=20).map(a->a.getName()).sorted().forEach(n->System.out.println(n));
		//2. 이름을 포함한 여러 정보를 출력하는 경우
		list.stream().filter(h->h.getAge()>=20).sorted().forEach(n->System.out.println(n));
		
		
		
		
		
		
		
	

	}

}

 


여행 고객 명단기초

public class Customar implements Comparable<Customar> {
	private String name;
	private int age;
	private int price;
	
	public Customar() {}
	public Customar(String name, int age) {
		super();
		this.name = name;
		this.age = age;
//		if(age>=15) {
//			this.price = 100;
//		} else {
//			this.price = 50;
//		}
		this.price = (age>15)? 100 : 50; //삼함연산자 이용
		
	}
	
	
	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 int compareTo(Customar o) {
		return this.name.compareTo(o.name);
	}
	
	
	@Override
	public String toString() {
		return name + "(" + age + ") / 비용: " + price;
	}
	
	
	
	

}