2017-04-10 2 views
-1

Sehr neu Scala, wenn zum Beispiel haben zwei ListenCorrect Scala Weg zum Loop/Karte 2 Listen und verschmelzen zu 1 Liste

val list1: List[Int] = List(10,11) 
val list2: List[Int] = List(1,2,3) 

eine Liste wie diese erstellen möchten:

List((10,1),(10,2),(10,3),(11,1),(11,2),(11,3)) 

Wie Würde ich das machen? Entschuldigung, wenn das schon mal gefragt wurde, bitte zögern Sie nicht mir die Antwort zu geben, wenn diese schon beantwortet wurde und ich werde diese gerne schließen, danke.

Antwort

0

dieser Start für Versuchen

list1.flatMap(x => list2.map(y => (x, y))) 

... die Kombination von Anrufen an flatMap und map zeigt an, dass ein for Verständnis wird auch funktionieren ...

for (x <- list1; y <- list2) yield (x, y) 

... es könnte sein, andere Möglichkeiten. Ich glaube, dass der Compiler in den meisten Fällen clever genug ist, das for Verständnis durch den Bytecode zu ersetzen, der dem flatMap und map Ansatz entspricht, so dass die beiden gleichwertig sein sollten (obwohl ich dies nicht getestet habe) ...

+0

Vielen Dank! Das ist perfekt, der Ertrag ist interessant. – Aomine

Verwandte Themen