Kotlin фильтрация массива

У меня есть массив:(Который нужно отфильтровать) Array: 1, 5, 5, 5, 5, 7, 7, 7, 7 Нужно получить (правильный) массив: Rightarray: 1, 5, 5, 7, 7 По условию: мне необходимо пройтись по массиву Array и в случае, если следующее число повторяется с предыдущим - убрать его. Решил сделать через коллекции Kotlin с предикатом. Как я это вижу: (ИСПРАВЛЕННЫЙ массив Array): 1, 5,(пусто!, убрали 5, так как она повторяется), 5, (пусто!, убрали 5, так как она повторяется), 7, (пусто!, убрали 7, так как она повторяется), 7, (пусто!, убрали 7, так как она повторяется). Возможно ли так реализовать?? Или кто может предложить другие варианты решения. Буду очень благодарен за помощь


Ответы (1 шт):

Автор решения: Roy O'Bannon

Не знаю, так сойдет? Я сам в Котлине ещё не очень:

fun main() {

fun test(arr: MutableList<Int?>): Any{
    var i = 0
    var j = 1
    
    while(j < arr.size){
        if(arr.elementAt(i) != arr.elementAt(j)){
            
            i += 1
            j += 1
        }
        else{
            i += 1
            arr.set(j, null)
            j += 1
        }
        
    }
            
    return arr.filterNotNull()
}

var t = test(mutableListOf(1, 5, 5, 5, 5, 7, 7, 7, 7, 6))
println(t)

}

→ Ссылка