Size: a a a

2019 October 17

AM

Andrew Mikhaylov in Kotlin Start
Kirill
Подскажите как можно из  Map<String, List<String>>  вывести ключ по его индексу?
пока нашел только:
.keys?.forEachIndexed { index, s -> if (index == i)
В Map ключи не лежат в том порядке, в котором вы их туда кладёте. Map даже не даёт гарантии порядка элементов, их дают конкретные реализации.
источник

K

Kirill in Kotlin Start
Alexander Nozik
Что такое ключ по его индексу?
Мап это же массив из (ключ - зхначение)
источник

AN

Alexander Nozik in Kotlin Start
Kirill
Мап это же массив из (ключ - зхначение)
нет
источник

AM

Andrew Mikhaylov in Kotlin Start
Если вам важен порядок, берите List<Pair<A, B>> и по необходимости сортируйте.
источник

AN

Alexander Nozik in Kotlin Start
мап - это мап. Смотри комментарий @r4zzz4k
источник

K

Kirill in Kotlin Start
мне с сервера приходят данные и пока все работало успешно, значит порядок сохранялся.. хм почему
источник

AN

Alexander Nozik in Kotlin Start
Kirill
мне с сервера приходят данные и пока все работало успешно, значит порядок сохранялся.. хм почему
потому что по-умолчанию котлин использует linkedhashmap
источник

AN

Alexander Nozik in Kotlin Start
но интерфейс эту гарантию не дает
источник

K

Kirill in Kotlin Start
Alexander Nozik
но интерфейс эту гарантию не дает
перейти на List<Pair<A, B>>
источник

AN

Alexander Nozik in Kotlin Start
Kirill
перейти на List<Pair<A, B>>
Именно так и надо сделать. И если у вас это какая-то очередь. то еще лучше Queue или Flow
источник

K

Kirill in Kotlin Start
Alexander Nozik
Именно так и надо сделать. И если у вас это какая-то очередь. то еще лучше Queue или Flow
у меня это временные точки
источник

K

Kirill in Kotlin Start
Alexander Nozik
Именно так и надо сделать. И если у вас это какая-то очередь. то еще лучше Queue или Flow
такого вида:
{"16":["40","45","50","55"],"17":["00","05","10","15","20","25","30","35","40","45","50","55"],"18":["00"]}
источник

K

Kirill in Kotlin Start
и все же интересно, почему порядок всегда сохранялся)
источник

AN

Alexander Nozik in Kotlin Start
Я уже ответил
источник

K

Kirill in Kotlin Start
Alexander Nozik
но интерфейс эту гарантию не дает
вот это не понял(
источник

AN

Alexander Nozik in Kotlin Start
Kirill
вот это не понял(
источник

AN

Alexander Nozik in Kotlin Start
Мапа не умеет порядок. Конкретно эта реализация порядок умеет, но не умеет операцию взятия по индексу
источник

K

Kirill in Kotlin Start
я понял, что он сохраняет порядок вставки, но не понял смысл фразы
источник

K

Kirill in Kotlin Start
ладно, спасибо, пойду читать матчасть)
источник

E🎸

El Mariachi 🎸 in Kotlin Start
Kirill
Подскажите как можно из  Map<String, List<String>>  вывести ключ по его индексу?
пока нашел только:
.keys?.forEachIndexed { index, s -> if (index == i)
Если LinkedHashMap... .toList()[index].first
источник