작지만 꾸준한 반복

stream flatMap으로 이중 for loop 없애기 본문

공부기록/Java

stream flatMap으로 이중 for loop 없애기

iamjooon2 2023. 5. 22. 00:05
// for loop
List<Card> cards = new ArrayList<>();
for (Denomination denomination : Denomination.values()) {
    for (Suit suit : Suit.values()) {
        cards.add(new Card(denomination, suit));
    }
}

 

// stream
final List<Cards> = Arrays.stream(Denomination.values())
                .flatMap(denomination -> Arrays.stream(Suit.values())
                        .map(suit -> new Card(denomination, suit)))
                .collect(Collectors.toUnmodifiableList());