Это будет сделано
interface Animal
data class Dog(val name: String) : Animal
data class Cat(val name: String) : Animal
val dogs: List<Animal> = List(20) { Dog(it.toString()) }
val cats: List<Animal> = List(4) { Cat(it.toString()) }
val result = dogs
.chunked(6)
.mapIndexed { index, dogs -> dogs.toMutableList().apply { add(1, cats[index]) } }
.flatten()
Это печатает
[Dog(name=0), Cat(name=0), Dog(name=1), Dog(name=2), Dog(name=3), Dog(name=4), Dog(name=5), Dog(name=6), Cat(name=1), Dog(name=7), Dog(name=8), Dog(name=9), Dog(name=10), Dog(name=11), Dog(name=12), Cat(name=2), Dog(name=13), Dog(name=14), Dog(name=15), Dog(name=16), Dog(name=17), Dog(name=18), Cat(name=3), Dog(name=19)]