Kotlin, как разделить список на подсписки - PullRequest
0 голосов
/ 10 ноября 2018

Я бы хотел разделить список на несколько подсписков, но не знаю, как это сделать.Однажды моей идеей было разделить список по индексу элемента.Например, индекс «B» равен 0, индекс «S» 2, поэтому я хотел бы принять участие между индексом 0 - 1 в первом подсписке, тогда второй подсписок должен быть частью между индексом 2 - 5. Пример моегосписок:

val listOfObj = listOf("B", "B" , "S", "B", "B", "X", "S", "B", "B", "P")

Результат после разбиения:

listOf(listOf("B","B"), listOf("S", "B", "B", "X"), listOf("S", "B", "B", "P") )

Как мне добиться такого результата?

1 Ответ

0 голосов
/ 10 ноября 2018

Вот и все. Я написал это со своего телефона без проверки, но идея является основной.

val result = mutableListOf<List<String>>()
var current = mutableList<String>()
listOfObj.forEach { letter ->
  if (letter == "S") {
    result.add(current)
    current = mutableListOf<String>()
  }
  current.add(letter)
}
if (current.isNotEmpty()) {
  result.add(current)
}

Вы можете даже создать функцию расширения для List<T>, которая получает элемент-разделитель в качестве параметра и возвращает список списков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...