Можно ли отправить результат операции steam в другую функцию, не собирая его в другой переменной

#java #kotlin #collections #java-8 #stream

#java #kotlin #Коллекции #java-8 #поток

Вопрос:

Например, в Kotlin / java у меня есть список строк. Я отфильтровал список и передал его через функцию сопоставления. В конце я могу собрать его в другой список, а затем использовать этот список везде, где захочу, например, отправить его в другую функцию. Есть ли какой-либо способ отправить список выходных данных в другую функцию без явного его сбора? Фрагмент кода ниже:

 val resultantList = stringList.filter { it.startsWith("a") }
            .map { it.substringAfter("b") }
anotherFunction(resultantList)
  

В приведенном выше фрагменте кода я не хочу объявлять resultantList . Вместо этого, в конце map, могу ли я передать результат ‘AnotherFunction` напрямую. Что-то вроде

 stringList.filter { it.startsWith("a") }
            .map { it.substringAfter("b") }.<something>{anotherFunction(it)}
  

Ответ №1:

let — это то, что вы ищете. Вам даже не нужно вызывать .let { anotherFunction(it) } , но вы можете использовать ссылку на функцию .let(::anotherFunction)