Size: a a a

2019 September 23

AN

Alexander Nozik in Kotlin Start
Denis Burtsev
Нашел хорошее описание разницы между IntArray и Array<Int>, предположу, что здесь похожая история.
Нет, IntArray - это массив примитивов, с точки зрения JVM он сильно отличается от массива ссылок. Так что если там лежит ссылочный объект, разницы нет. Для примитивов есть intArrayOf и там нулов быть не может
источник

AL

Alexander Levin in Kotlin Start
El Mariachi 🎸
1. Какие имплементации Мапы гарантируют сохранение порядка? (все кроме HashMap?)
2. Если мне нужна возможность доставать пару по индексу, достаточно будет просто сделать mapOf?
3. Чтоб достать пару из такой мапы по индексу через оператор [] надо вызвать toIterable?
1. Порядок в смысле запоминать порядок добавления - это LinkedHashMap.
2. Вообще даже у линкед мапы нету явной возможности обращаться по индексу. Т.е. это можно навесить сверху через обращение к map.entries.toList()[index]. Если вы хотите идти таким путём, то linkedMapOf вместо mapOf (возможно mapOf тоже линкед мапу использует под капотом, но это не гарантируется функцией)
3. Во втором вопросе написал, действительно нужно вытащить энтри, а затем сделать так, чтобы у выращенной коллекции были индексы (у Set либо Iterable их нету)
источник

BV

Boris Vanin in Kotlin Start
Если очень хочется обращаться и по ключу и по индексу, надо просто две мапы сделать
источник

BV

Boris Vanin in Kotlin Start
ЛинкдХешМэп совсем не для этого
источник

BV

Boris Vanin in Kotlin Start
Он просто порядок добааления сохраняет
источник

E🎸

El Mariachi 🎸 in Kotlin Start
Boris Vanin
Если очень хочется обращаться и по ключу и по индексу, надо просто две мапы сделать
видимо это, по сути получается два ключа у каждой записи....
источник

E🎸

El Mariachi 🎸 in Kotlin Start
спасибо
источник

E🎸

El Mariachi 🎸 in Kotlin Start
можно даже мапу и Array с ключами в нужном порядке
источник

E🎸

El Mariachi 🎸 in Kotlin Start
El Mariachi 🎸
И чем отличается вызов arrayOfNulls<T>(size) от вызова конструктора Array(size) {null) ?
Кстати, догадался... автовыведением типа для первого случая )
источник

ВС

Виталий Сердюк in Kotlin Start
как объеденить старший байт с младшим и записать в Int ?
var h = 0x40
var l = 0x00
надо получить в Int 0х4000
источник

n

neikist in Kotlin Start
Виталий Сердюк
как объеденить старший байт с младшим и записать в Int ?
var h = 0x40
var l = 0x00
надо получить в Int 0х4000
сдвиг влево два раза для h и or для  h и l
источник

ВС

Виталий Сердюк in Kotlin Start
neikist
сдвиг влево два раза для h и or для  h и l
чет не понял
val res = h shl 2 or h or l
источник

n

neikist in Kotlin Start
Виталий Сердюк
чет не понял
val res = h shl 2 or h or l
val res = (h shl 2) or l
источник

ВС

Виталий Сердюк in Kotlin Start
neikist
val res = (h shl 2) or l
сдвиг на 2 это для диапазона #FFFF я так понимаю ?
источник

n

neikist in Kotlin Start
Виталий Сердюк
сдвиг на 2 это для диапазона #FFFF я так понимаю ?
Не понял вопроса.
источник

ВС

Виталий Сердюк in Kotlin Start
neikist
val res = (h shl 2) or l
так получается работа с одим байтом в итоге получим 256. надо получить 2 байта 0x4000
источник

n

neikist in Kotlin Start
Почему получим 256? Есть два инта значения которых не больше 0xff каждого, сдвигаем первый в лево получаем 0xXX00 or со вторым получаем 0xXXYY
источник

AM

Andrew Mikhaylov in Kotlin Start
Виталий Сердюк
так получается работа с одим байтом в итоге получим 256. надо получить 2 байта 0x4000
shl 8, а не shl 2, и будет тебе счастье
источник

ВС

Виталий Сердюк in Kotlin Start
Andrew Mikhaylov
shl 8, а не shl 2, и будет тебе счастье
+ пасиб )
источник

AM

Andrew Mikhaylov in Kotlin Start
h и l могут быть байтами, но битовые операции растянут их до интов. На выходе тоже будет инт.
источник