Size: a a a

2020 September 01

AE

Alexandr Emelyanov in KotlinLangRu
а при каких случаях массив? сто лет их в коде не видел кроме редких случаев
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Ну я это к примеру. И во вторых тогда где оптимизация ?
Код input.filter {it.value1 % 2 == 1}.map {To(it.value2, it.value1)} ведь порождает 2 коллекции?
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
Код input.filter {it.value1 % 2 == 1}.map {To(it.value2, it.value1)} ведь порождает 2 коллекции?
Да, если сиквенс то одну. Ваш пример тоже две породить. То-есть смысл билдера в такой ситуации 0. Это и называю вырожденным случаем, это решение подходит для конкретной задачи
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Да, если сиквенс то одну. Ваш пример тоже две породить. То-есть смысл билдера в такой ситуации 0. Это и называю вырожденным случаем, это решение подходит для конкретной задачи
» Ваш пример тоже две породить
Как 2?
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
» Ваш пример тоже две породить
Как 2?
Давай сначала. Мне нужно сначало сделать мап потом фильтер. Как я это сделаю спомошью твоего метода и с одной выделеной коллекцией  ?
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Давай сначала. Мне нужно сначало сделать мап потом фильтер. Как я это сделаю спомошью твоего метода и с одной выделеной коллекцией  ?
а. нет, понятное дело в этой истории нет смысла.
источник

ИИ

Иван Иванов... in KotlinLangRu
но так-то логично, что сначала фильтруется, потом преобразуется
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
а. нет, понятное дело в этой истории нет смысла.
Ну вот, это у тебя "стандартный" вариант прохода, у меня нет. Поэтому это и есть вырожденный случай
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
но так-то логично, что сначала фильтруется, потом преобразуется
Не всегда, в маринге может участвовать третья сущность которая влияет на модель.

Допустим у нас нет способа профильтровать исходную модель, мы ее сначало создадим
источник

ИИ

Иван Иванов... in KotlinLangRu
test.asSequence().filter { it.value1 % 2 == 1 }.map { To(it.value2, it.value1) } на выходе Sequence
А дальше, как я понимаю, мне лучше оставаться работать с Sequence. и в for-each спокойно её кидать?
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
test.asSequence().filter { it.value1 % 2 == 1 }.map { To(it.value2, it.value1) } на выходе Sequence
А дальше, как я понимаю, мне лучше оставаться работать с Sequence. и в for-each спокойно её кидать?
Да можно сразу for либо получить коллекцию toList и тд
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
test.asSequence().filter { it.value1 % 2 == 1 }.map { To(it.value2, it.value1) } на выходе Sequence
А дальше, как я понимаю, мне лучше оставаться работать с Sequence. и в for-each спокойно её кидать?
Сиквенс ленивый вычисления не начнутся пока не вызовешь терминальную операцию
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Да можно сразу for либо получить коллекцию toList и тд
Я понял. Посмотрел реализацию, это и правда своеобразный билдер
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
Я понял. Посмотрел реализацию, это и правда своеобразный билдер
В нем просто нет инлайн лямбд
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
В нем просто нет инлайн лямбд
да. а это тоже производительность
источник

ИИ

Иван Иванов... in KotlinLangRu
накидал тут теста
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
накидал тут теста
Зачем дёргается gc ?
источник

ИИ

Иван Иванов... in KotlinLangRu
Bogdan Panchenko
Зачем дёргается gc ?
на всякий случай)
источник

BP

Bogdan Panchenko in KotlinLangRu
Иван Иванов
на всякий случай)
Не стоить. Прочти доку
источник

ИИ

Иван Иванов... in KotlinLangRu
чтобы максимально чисто было перед тестом. нет?
источник