Kotlin Instantiate Immutable List

Ich habe angefangen, Kotlin als Ersatz für Java zu verwenden und mag es. Ich konnte jedoch keine Lösung dafür finden, ohne zurück ins Java-Land zu springen:

Ich habe einIterable<SomeObject> und müssen es in eine Liste konvertieren, damit ich es mehr als einmal durchlaufen kann. Dies ist eine offensichtliche Anwendung einer unveränderlichen Liste, da ich sie nur mehrmals lesen muss. Wie setze ich diese Daten eigentlich zu Beginn in die Liste? (Ich weiß, dass es sich um eine Schnittstelle handelt, aber ich konnte keine Implementierung in der Dokumentation finden.)

Mögliche (wenn nicht zufriedenstellende) Lösungen:

val valueList = arrayListOf(values)
// iterate through valuelist

ode

fun copyIterableToList(values: Iterable<SomeObject>) : List<SomeObject> {
    var outList = ArrayList<SomeObject>()
    for (value in values) {
        outList.add(value)
    }
    return outList
}

Wenn ich nicht falsch verstanden habe, enden diese mitMutableLists, das funktioniert, sich aber wie eine Problemumgehung anfühlt. Gibt es ein ähnlichesimmutableListOf(Iterable<SomeObject>) Methode, die ein unveränderliches Listenobjekt instanziiert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage