Запрос строки concat в массив с использованием выражения lamda - PullRequest
2 голосов
/ 24 января 2020
String A = "Sample";
List<String> val;
for (int i = 0; i < 5; i++) {
    val.add(A + i);
}

Мой вывод будет Sample1, Sample2, Sample3 et c .. Могу ли я узнать, как обрабатывать этот скрипт в одну строку, используя лямбда-выражение

Ответы [ 3 ]

2 голосов
/ 24 января 2020

Для этого вы можете использовать IntStream с оператором карты. Вот как это выглядит.

List<String> val = IntStream.range(0, 5)
    .mapToObj(i -> A + i)
    .collect(Collectors.toList());
1 голос
/ 24 января 2020

Интерфейс списка не является функциональным интерфейсом, поэтому здесь нельзя использовать лямбду. Я делаю это с помощью потока: -

String A = "Sample";
List<String> val = IntStream.range(0, 5)
                            .mapToObj(num -> A.concat(String.valueOf(num)))
                            .collect(Collectors.toList());

Если у вас есть один метод в интерфейсе, то только вы можете выполнять лямбда-выражения.

1 голос
/ 24 января 2020

Для этого вы можете использовать поток int:

String A = "Sample";
List<String> val = IntStream.range(0, 5)
                    .mapToObj(i -> A + i)
                    .collect(Collectors.toList());
...