Stream 예제

이진석·2022년 8월 20일
1
post-thumbnail

20220820

한 번에 끝내는 Java/Spring 웹 개발 마스터


1) Stream 예제

package ch07;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class TravelCustomerTest {
	
	public static void main(String[] args) {
		
		TravelCustomer cutomerLee = new TravelCustomer("이순신", 40, 100);
		TravelCustomer cutomerKim = new TravelCustomer("김유신", 20, 100);
		TravelCustomer cutomerHong = new TravelCustomer("홍길동", 13, 50);
		
		List<TravelCustomer> customerlist = new ArrayList<>();
		customerlist.add(cutomerLee);
		customerlist.add(cutomerKim);
		customerlist.add(cutomerHong);
		
		System.out.println("== 고객 명단 추가된 순서대로 출력 ==");
		customerlist.stream().map(c -> c.getName()).forEach(s->System.out.println(s));
	
		System.out.println("\n== 여행 비용 ==");
		int total = customerlist.stream().mapToInt(c->c.getPrice()).sum();
		System.out.println("총 여행 비용은 :" + total + "입니다");
		
		System.out.println("\n== 20세 이상 고객 명단 정렬하여 출력 ==");
		customerlist.stream().filter(c->c.getAge() >= 20).map(c->c.getName()).sorted().forEach(s->System.out.println(s));
	}
}

  • Stream을 이용해서, 고객을 arrayList에 추가하고, 이름과 여행 비용, 20세 이상 고객의 이름을 출력하는 문제이다.
  • map(), filter(), mapToInt(), forEach()등등의 메소드를 활용하는 것이 어려웠다.
  • 람다식을 제대로 이용하지 못 하면 Stream을 출력함에 있어서 어려움이 있는듯 하다.
profile
혼자서 코딩 공부하는 전공생 초보 백엔드 개발자 / https://github.com/leejinseok0614

0개의 댓글