공부기록/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());