Size: a a a

2020 September 01

ИИ

Иван Иванов... in KotlinLangRu
Господа, вопрос. Имеется ли в Kotlin билдер выборки по коллекции?
Вот такая цепочка, только, чтоб билдер:
val result = inputArray
.filter { cond }
.sortBy { cond }
.slice(0 until 10)
.map { ... }
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
Господа, вопрос. Имеется ли в Kotlin билдер выборки по коллекции?
Вот такая цепочка, только, чтоб билдер:
val result = inputArray
.filter { cond }
.sortBy { cond }
.slice(0 until 10)
.map { ... }
Что значить билдер выборки ?
источник

BP

Bogdan Panchenko in KotlinLangRu
Что бы каждый раз не создавать массив ?
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Что значить билдер выборки ?
Да. Неясно выразился.
Имею ввиду, чтобы можно было задавать параметры на выборку и за один (если без сортировки) проход можно было собрать коллекцию с нужным типом
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Что бы каждый раз не создавать массив ?
Ес
источник

ИИ

Иван Иванов... in KotlinLangRu
Я думаю, что можно сделать такой билдер с инлайн функциями, который может генерировать оптимальный по производительности код
источник

BP

Bogdan Panchenko in KotlinLangRu
asSequence, есть на коллекция на массивах хз, не даёт профита на маленьких коллекциях и одном оператор. В вашем случае должно помочь. Но нужно понимать что сортировка по факту терминальная - будет создан внутренний лист
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
Я думаю, что можно сделать такой билдер с инлайн функциями, который может генерировать оптимальный по производительности код
С инлайном не видел такого
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
asSequence, есть на коллекция на массивах хз, не даёт профита на маленьких коллекциях и одном оператор. В вашем случае должно помочь. Но нужно понимать что сортировка по факту терминальная - будет создан внутренний лист
Сортировкой можно пренебречь. Я для общего понимания, что нужно.

Самая частая моя цепочка - это input.filter{...}.map{...}
источник

AE

Alexandr Emelyanov in KotlinLangRu
Иван Иванов
Я думаю, что можно сделать такой билдер с инлайн функциями, который может генерировать оптимальный по производительности код
Опять фантазии
источник

ИИ

Иван Иванов... in KotlinLangRu
Alexandr Emelyanov
Опять фантазии
Нереализуемо?
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
Сортировкой можно пренебречь. Я для общего понимания, что нужно.

Самая частая моя цепочка - это input.filter{...}.map{...}
Ну сиквенс тут даст прирост, по памяти точно
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
Нереализуемо?
Отдать на откуп вм
источник

AE

Alexandr Emelyanov in KotlinLangRu
Иван Иванов
Нереализуемо?
Ну как ты на инлайнах сделаешь?
источник

ИИ

Иван Иванов... in KotlinLangRu
Alexandr Emelyanov
Ну как ты на инлайнах сделаешь?
а что такого?
источник

ИИ

Иван Иванов... in KotlinLangRu
не получится оптимизаций?
источник

ИИ

Иван Иванов... in KotlinLangRu
я тут накидал, выкинув сортировку
источник

ИИ

Иван Иванов... in KotlinLangRu
> > [To(value1=One, value2=1), To(value1=Three, value2=3)]
источник

ИИ

Иван Иванов... in KotlinLangRu
Сортировка и правда порождает новую коллекцию, поэтому смысла нет искать возможность вставить в инлайн функцию, а просто отдельно сортануть и из результата получить нужный диапазон
источник

AE

Alexandr Emelyanov in KotlinLangRu
Иван Иванов
я тут накидал, выкинув сортировку
это вообще никакой не билдер, я тупо кастомный метод с логикой
источник