Java8 스트림 사용하여 특정 필드로 구성된 리스트 만들기
- Coding/Java
- 2021. 7. 23.
반응형
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
반응형
'Coding > Java' 카테고리의 다른 글
[Java8] Stream counting 개수 얻기 (0) | 2021.07.27 |
---|---|
[Java] List<String>의 각 원소 고유문자 리턴하기 - Stream 평면화 과정 (flatMap 사용) (0) | 2021.07.26 |
[Java] 배열 array 를 Collections.reverseOrder 사용하여 역순 정렬하기 (0) | 2021.07.05 |
[Java] Stream 사용하여 배열(array)의 max, min 구하기 (0) | 2021.07.05 |
Java 로 Enum.java 생성하기 (0) | 2021.06.08 |