У меня есть список строкПреобразовать список на карту с ключом является индексом в Scala
val list = List("a", "b", "c", "d", "e")
и я хочу иметь карту с ключами как индексы элементов в списке. Так что я сделал следующее:
def mapByIndexes(list: List[String]): Map[Int, String] = (1 to list.size).zip(list).toMap
Однако, в результате чего карта не сохраняет порядок индекса, и я получаю это в результате:
Map(5 -> "e", 1 -> "a", 2 -> "b", 3 -> "c", 4 -> "d")
Как я могу изменить код выше, так что я Получать карту со следующим, естественным порядком?
Map(1 -> "a", 2 -> "b", 3 -> "c", 4 -> "d", 5 -> "e")
Примечание: Я знаю, что я могу просто сортировать полученную карту, но я могу избежать этого шага и создать карту, которая уже сохраняющее порядок?
Редактировать: Решение с ListMap
описано в статье Scala LinkedHashMap.toMap preserves order?, но мне не нужны дополнительные круглые скобки и _*
для такой простой вещи. Разве нет ничего другого, чтобы я мог просто цепочки? Если нет, я буду принимать ответ @pamu.
Возможный дубликат [Scala LinkedHashMap.toMap сохраняет заказ?] (Http://stackoverflow.com/questions/6199186/scala-linkedhashmap-tomap-preserves-order) –