Я хочу, чтобы преобразовать следующий код с помощью Java 8 потока APIПреобразования классического вложенного цикла с Java 8 потоками
List<Card> deck = new ArrayList<>();
for (Suit s: Suit.values())
{
for (Rank r: Rank.values())
{
deck .add(new Card(r, s));
}
}
Я вышел с этим
List<Card> deck = new ArrayList<>();
Arrays.stream(Suit.values())
.forEach(s -> Arrays.stream(Rank.values())
.forEach(r -> deck.add(new Card(r, s))));
, но мне не нравится так как он имеет побочный эффект в списке.
Есть ли другой элегантный способ, создающий список из потока, а может быть?
Что значит «* имеет побочный эффект в списке *»? Что такое побочный эффект? –
Как указано выше, что означает «побочные эффекты»? Также вы можете попытаться просмотреть, можете ли вы перевести оба списка, а затем собрать результат в новом списке. Имейте в виду, что не всегда эффективно использовать потоки, поскольку они имеют тенденцию иметь большие накладные расходы. – Aris