Как я могу создать карту с каждыми двумя элементами в списке в Kotlin? - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь создать карту, которая берет два значения из списка и использует первое значение в качестве ключа, а второй ключ в качестве значения, но я не могу понять, как это сделать.

Допустим, у меня есть список, подобный следующему.

-e, normal, -t, flat, -s, test

Как я могу создать карту из этого списка, которая выглядит следующим образом?

-e до normal, -t до flat, -s до test

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Использование stdlib , zipWithNext() - самый простой способ достижения вашей цели:

val arguments = listOf("-e", "normal", "-t", "flat", "-s", "test")

val map = arguments.zipWithNext().toMap()

Доступно начиная с версии 1.2.

0 голосов
/ 28 апреля 2018

Если вы хотите использовать встроенные функции, chunked может быть быстрым способом сделать это:

val arguments = listOf("-e", "normal", "-t", "flat", "-s", "test")

val map: Map<String, String> = arguments
        .chunked(2) { (switch, value) -> switch to value }
        .toMap()

println(map) // {-e=normal, -t=flat, -s=test}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...