
Konstantine
21.02.2018
11:29:31
Ты пиши с вложенным массивом и посмотри что красивше Array<Array<Element» или [][] ;)
И так же с инициализацией, да.
Если элемент кастомный особенно.

Google

Alexey
21.02.2018
11:31:07
омагад, скобки не красивые

Konstantine
21.02.2018
11:31:21

Bogdan
21.02.2018
11:31:42

Konstantine
21.02.2018
11:32:29

Alexey
21.02.2018
11:32:35
Я сейчас конечно для тебя америку открою, но массив - это по сути примитив, и в обычно жизни с ними никто не парится

Bogdan
21.02.2018
11:32:46

Konstantine
21.02.2018
11:33:02
хватит оффтопить
Так ты это себе скажи. С решением вопроса ты не помог, а только покричал в чате и меня потянул за собой :)

Alexey
21.02.2018
11:33:36
Зачем, чем тебе ArrayList тот же не устроил?
Двумерные массивы это как бы вообще сахар
В тех же плюсах и сисарпах
Да и в джаве поди тоже

Bogdan
21.02.2018
11:34:14

Google

Alexey
21.02.2018
11:34:26
Есть только одномерные массивы

Anton
21.02.2018
11:34:46
уважаемые эксперты давайте оставим мнения по language design при себе)

Bogdan
21.02.2018
11:34:49

Руслан
21.02.2018
11:34:59
Вот я дурак, переписываю удобные даже на Java массивы с итерацией на стримы.
https://github.com/bootique/bootique/commit/8adce30e36e4dc13c0ca041e3c57134b5b428377#diff-9dd089fea9c17106624d0c2a90654a7aL37

Nick
21.02.2018
11:42:33
если производительность не критична в данном месте, то стримы будут читабельнее
тут тоже дело привычки

Konstantine
21.02.2018
11:46:13
И эта инициализация по твоему лучше чем int[][] mm = int[][]?)
Даже если котлиновский вариант упростить, убрать лямбду, она там в IntArray по умолчанию есть, убрать дженерики, всё равно получается дичь не красивая)

Bogdan
21.02.2018
11:47:50

Konstantine
21.02.2018
11:48:23
пиши что хочешь
Именно так и делаю. Но вопрос оказался нерешаемым. Котлин в это дело не могет, а жаль

Quantum Harmonizer
21.02.2018
11:48:56

Egor
21.02.2018
11:49:42
Оверхеды из-за сотни слоев абстракций
Но в принципе терпимо

Nick
21.02.2018
11:50:48
если сравнить затраты на инициализацию + особенности, то перебор в цикле будет быстрее, но если не критично то норм. Смотрите бенчмарки, стримы немного медленнее циклов

Quantum Harmonizer
21.02.2018
11:51:17
Оверхеды из-за сотни слоев абстракций
Стримы — это ленивые обёртки над сплитераторами. Что делает их самым быстрым способом применить к коллекции несколько операторов и распараллелить вычисления.

Egor
21.02.2018
11:51:31
Да я знаю, лол

Nick
21.02.2018
11:51:31
а вот в котлине там inline, фактически в байткоде будет перебор в цикле.

Quantum Harmonizer
21.02.2018
11:51:44

Egor
21.02.2018
11:52:00
В студию результаты

Quantum Harmonizer
21.02.2018
11:52:01

Google

Nick
21.02.2018
11:52:12
так и есть
на хабре много было бенчей

Quantum Harmonizer
21.02.2018
11:52:51
В студию результаты
Это было давно. Вкратце: на маленьких коллекциях циклы быстрее, на больших — стримы.

Nick
21.02.2018
11:53:00
если есть что-то что показывает отличие кидайте ссылку

Quantum Harmonizer
21.02.2018
11:53:35

Nick
21.02.2018
11:53:41
Ну если на размерах, то да при больших коллекциях разница несущественна

Quantum Harmonizer
21.02.2018
11:54:19

Artem
21.02.2018
11:55:33
А сиквенсы?

Bogdan
21.02.2018
11:55:54
А сиквенсы?
они вроде пока неочень, но я могу заблуждатся
не оптимизировали еще

Artem
21.02.2018
11:56:08
Совсем недавно в kotlin in action прочитал про сиквенсы подробнее. Не сказал бы, что не очень.

Bogdan
21.02.2018
11:56:29

Artem
21.02.2018
11:56:32
Когда много фильтровать и мапить надо... Эт очень полезная штука, как мне показалось

Bogdan
21.02.2018
11:56:39

Quantum Harmonizer
21.02.2018
11:56:42
А сиквенсы?
Я проверял стримы до того, как узнал про Котлин, но при нескольких операциях сиквенсы обязательно обгонят простую работу с коллекциями. Они — как однопоточные стримы.

Nick
21.02.2018
11:57:20
сиквенсы при больших коллекциях и множестве операций, а при малых коллекциях и небольшом количестве операций можно и без сиквенсов

Artem
21.02.2018
11:57:32

Nick
21.02.2018
11:58:06
нехватает паралельности в сиквенсах

Artem
21.02.2018
11:58:27
В смысле, зачем?

Alexey
21.02.2018
11:58:30
Народ, ау, говорить про производительность коллекций на 10 элементов - это вообще перебор

Google

Alexey
21.02.2018
11:59:02
10 - это абстрактное число
подставьте своё

Денис
21.02.2018
11:59:09
Да у нас просто элементы по гигабайту!

Nick
21.02.2018
11:59:20
так для такого размера просто не надо сиквенсы юзать

Alexey
21.02.2018
11:59:40
Правильнее сказать, для такого размера насрать что юзать

Nick
21.02.2018
12:01:09
ну, если не юзать сиквенсы, то тк компилится просто в цикл, то может быстрее
об этом сказано в kotlin in action

Artem
21.02.2018
12:16:41
Там ведь еще фишка в промежуточных коллекциях
Точнее в том, что они не создаются

Quantum Harmonizer
21.02.2018
12:23:48

Artem
21.02.2018
12:25:28
Ну и еще в том, что оно не проверяет сразу все элементы, а каждый элемент по всей цепочке действий гоняет
Вроде бы правильно написал ?

Alexandr
21.02.2018
13:01:31
народ подмогните плиз? а то я чего-то туплю. Как с помощью корутин сделать следующее: 1. нужно получить информацию из БД (не основной поток) 2. после получения информации необходимо обновить UI элемент (основной поток). при этом UI поток не должен блокироваться, все должно происходить в фоне

Artem
21.02.2018
13:04:12

Alexandr
21.02.2018
13:05:09

Dumitru
21.02.2018
14:54:18
Если ты пишешь под android-ktx нужен ли anko ?

Igor
21.02.2018
15:28:19
хех, похоже на наброс ? (anko нужен если хочешь UI в коде)

Quantum Harmonizer
21.02.2018
15:32:51
В Anko планируют задепрекейтить то, что есть в KTX.

Mikhail
21.02.2018
18:13:06
Ребят, а есть в Intellij команда, чтобы инсертнула все параметры конструктора? (пишешь такой
Foo(...
@
МАГИЧЕСКОЕ СОЧЕТАНИЕ КЛАВИШ
@
Foo(bar = , baz = , ...)
)
А то я в конец обленился

Kirill
21.02.2018
18:21:01

Google

Mikhail
21.02.2018
18:21:39
дя
ну вообще любой функции

Kirill
21.02.2018
18:21:56
но зачем? О_О

Mikhail
21.02.2018
18:22:02
эмм
чтобы было легко прочтитать вызов конструктора дата класса на 6-7 параметров

Alexey
21.02.2018
18:23:55
Если параметры уже заполнены, то по альт энтер можно проименовать параметры
Ну и хот кей тоже можно назначить

Mikhail
21.02.2018
18:24:47
неее
в том то и дело, что я только открыл скобочку
и делаю приблизительно такое: cmd+P -> посмотреть имя параметра -> начать писать его -> hit Tab -> repeat