Создать массив класса, передавая отдельные значения в массивах в качестве аргументов - PullRequest
0 голосов
/ 26 августа 2018

Я чувствую, что пропускаю что-то простое. Я ищу элегантный способ сделать это:

List<Card> cards = new ArrayList<>(ranks.length);
for (int i = 0; i < ranks.length; i++) {
    cards.add(new Card(ranks[i],suits[i],values[i]));
}

Intellj придумал:

cards = IntStream.range(0, ranks.length).mapToObj(i -> new Card(ranks[i], suits[i], values[i])).collect(Collectors.toCollection(() -> new ArrayList<>(ranks.length)));

но это похоже на серьезное излишество. Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 26 августа 2018

Нет ничего плохого в подходе for for loop, но если вы хотите использовать Stream s, вы можете упростить часть collect (вы можете обойтись без пользовательской емкости и реализации List):

** 1005
...