여행고객명단 : 명단출력 / 비용계산 / 조건에 맞는 명단만 출력
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;
}
}