JAVA/Java2021-3
스트림 활용
RoarinGom
2021. 10. 12. 18:30
문제
1- 고객 명단 출력
2- 여행의 총 비용 계산
3- 고객 중 20세 이상인 사람의 이름을 정렬하여 출력
Step1. Customer 클래스 만들고
Step2. ArrayList<Customer>로 관리
package Basic_Grammar.chap6.ch03StreamQuiz;
import java.util.ArrayList;
import java.util.List;
public class CustomerTest {
public static void main(String[] args) {
List<Customer> customers=new ArrayList<>();
Customer lee=new Customer();
lee.setCustomerName("이순신");
lee.setAge(40);
lee.setCost(100);
Customer kim=new Customer();
kim.setCustomerName("김유신");
kim.setAge(20);
kim.setCost(50);
Customer hong=new Customer();
hong.setCustomerName("홍길동");
hong.setAge(13);
hong.setCost(50);
customers.add(lee);
customers.add(kim);
customers.add(hong);
System.out.println("전체 고객 명단 출력");
customers.stream().forEach(customer ->
System.out.println(customer.getCustomerName())
);
System.out.println("회원들 여행의 총 비용");
System.out.println(customers.stream().mapToInt(c->c.getCost()).sum());
System.out.println("20세 이상 고객 명단 출력");
customers.stream().filter(customer -> customer.getAge()>=20).forEach(customer -> System.out.println(customer.getCustomerName()+"의 나이:"+customer.getAge()));
System.out.println("20세 이상 고객 명단 출력(가나다 순으로 정렬)");
customers.stream().filter(customer -> customer.getAge()>=20).map(c->c.getCustomerName()).sorted().forEach(name -> System.out.println(name));
}
}
실행결과