Java8 스트림 사용하여 특정 필드로 구성된 리스트 만들기

반응형
728x90
반응형

샘플 파일 생성

1) Product.java
public class Product {
    private int idx;
    private String productName;
    private int ordCnt;
    private int totalCnt;

    public int getIdx() {
        return idx;
    }

    public String getProductName() {
        return productName;
    }

    public int getOrdCnt() {
        return ordCnt;
    }

    public int getTotalCnt() {
        return totalCnt;
    }

    public Product(int idx, String productName, int ordCnt, int totalCnt) {
        this.idx = idx;
        this.productName = productName;
        this.ordCnt = ordCnt;
        this.totalCnt = totalCnt;
    }
}

 

2) Main.java
import dto.Product.Product;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {

    public static void main(String[] args) {
	    // sample List
        List<Product> products = Arrays.asList(
                new Product(0, "Note_red", 1, 100),
                new Product(1, "Note_blue", 2, 200),
                new Product(2, "Note_green", 3, 300),
                new Product(3, "Note_pink", 4, 400),
                new Product(4, "Note_yellow", 5, 500),
                new Product(5, "Note_black", 6, 600),
                new Product(6, "Note_white", 7, 700),
                new Product(7, "Note_purple", 8, 800)
        );
        
        /* 스트림의 내부반복 - getProductName */
        List<String> productNameList = products.stream()
                                               .map(Product::getProductName)
                                               .collect(Collectors.toList());

    }
}

 

 

스트림 코드 분석

/* 스트림의 내부반복 - getProductName */
        List<String> productNameList = products.stream()
                                               .map(Product::getProductName)
                                               .collect(Collectors.toList());

map 메서드

getProductName 메서드 참조를 사용하여 상품명만 추출한다.

 

colelct 메서드

List 타입으로 변환한다.

 

 

 

디버깅

  • 1) List 타입의 products

 

  • 2) map-collect 메소드를 거친 후 productNameList

 

 

반응형

Designed by JB FACTORY