Home > Enterprise >  how to swap places of strings in a kotlin list?
how to swap places of strings in a kotlin list?

Time:01-25

i have a list in my project like

val list1 = listOf("1", "pig", "3", "cow")

and i need to swap it to like "pig", "1", "cow", "3"

and the number and words will be random so it cant be only on these words

can anyone tell me how to do this?

CodePudding user response:

You can combine chunked() to get pairs of items and then flatMap() to swap them and recreate a flat list:

list1
    .chunked(2)
    .flatMap { listOf(it[1], it[0]) } // or: it.reversed()

However, it looks pretty weird that you have a list like this in the first place. If items of this list are stored in two subsequent indexes, then such design complicates maintaining and processing of the data. Instead, create a data class for both fields and create a list of such data items:

val list = listOf(Animal("1", "pig"), Animal("3", "cow"))

data class Animal(
    val id: String,
    val name: String,
)
  •  Tags:  
  • Related