Истребитель Котлин перечислить?

У меня есть итератор строк из fieldNames JsonNode :

 val mm = ... //JsonNode val xs = mm.fieldNames() 

Я хочу перебирать поля, сохраняя счет, например:

 when mm.size() { 1 -> myFunction1(xs[0]) 2 -> myFunction2(xs[0], xs[1]) 3 -> myFunction3(xs[0], xs[1], xs[2]) else -> print("invalid") } 

Очевидно, что вышеуказанный код не работает как xs итератор не может быть проиндексирован так. Я попытался проверить, могу ли я преобразовать итератор в список с помощью mm.toList() но этого не существует.

Как я могу это достичь?

Вероятно, самый простой способ – сначала преобразовать итератор в Sequence а затем в List :

 listOf(1,2,3).iterator().asSequence().toList() 

результат:

 [1, 2, 3] 
  • Идиоматические редакторы Kotlin
  • Android Studio 3.0 поддерживает Kotlin: активность как контекст
  • Как установить setOnItemClickListener для просмотра списка с помощью пользовательского адаптера Kotlin
  • Пользовательский геттер для свойств параметров типа
  • Одинаковая конечная точка отдыха с различными PathVariable
  • Неразрешенная ссылка: LinearLayoutManager / RecyclerView
  • Почему инициализаторы свойств не вызывают пользовательский сеттер?
  • Создайте список из другого
  • Почему == и равные производят разные результаты?
  • Как класс макета может не соответствовать его классу java в Котлине?
  • Kotlin: Оператор '==' не может применяться к 'kotlin.Int' и 'Person?' ошибка
  • Давайте будем гением компьютера.