¿Cómo eliminamos elementos de una MutableList en Kotlin?

Tengo el siguiente código donde necesito mostrar los elementos de una list a la vista y luego eliminar esos elementos de la list. He estado buscando en filter vs map en kotlin, pero no encontré suerte para encontrar una solución.

var mutableList: MutableList<Object> = myImmutableList.toMutableList() for (x in mutableList.indices) { val tile = row!!.getChildAt(x % 4) val label = tile.findViewById(android.R.id.text1) as TextView label.text = mutableList[x].name val icon = tile.findViewById(android.R.id.icon) as ImageView picasso.load(mutableList[x].icon).into(icon) } 

Como está iterando a través de toda la list, la forma más sencilla sería llamar al método claro de MutableList después de procesar todos los elementos.

 mutableList.clear() 

Otra opción podría ser eliminar el método para eliminar el elemento dado o eliminar para eliminar el elemento en el índice dado. Ambos son nuevamente methods de la class MutableList . En la práctica, se vería así.

 val list = listOf("a", "b", "c") val mutableList = list.toMutableList() for (i in list.indices) { println(i) println(list[i]) mutableList.removeAt(0) } 

¿Hay alguna razón por la que no puedas mapear y filtrar la colección inmutable inicial? Ya está haciendo una copy cuando llama a "List # toMutableList ()", por lo que no veo exactamente lo que intenta lograr evitándolo.

 val unprocessedItems = myImmutableList.asSequence().mapIndexed { index, item -> // If this item's position is a multiple of four, we can process it // The let extension method allows us to run a block and return a value // We can use this and null-safe access + the elvis operator to map our values row?.getChildAt(index % 4)?.let { val label = it.findViewById(android.R.id.text1) as TextView label.text = item.name val icon = it.findViewById(android.R.id.icon) as ImageView picasso.load(item.icon).into(icon) // Since it's processed, let's remove it from the list null } ?: item // If we weren't able to process it, leave it in the list }.filterNotNull().toList() 

De nuevo, no estoy seguro de a qué te refieres con esto. Creo que podría haber un mejor enfoque dado más detalles.