2016-11-30 9 views
1

私はそうのように、私はforループ内で1Dリストに追加するその後のループのために前に2Dのリストを定義したい:は、2Dのリストを定義し、ループの中で、それにリストを追加し、Scalaの

var 2dEmptyList: listOf<List<String>> 
for (element<-elements){ 
    ///do some stuff 
    2dEmptyList.plusAssign(1dlist) 
} 

上記のコードは機能しません。しかし、私はこれのための解決策を見つけることができないようであり、それはとても簡単です!

+0

あなたは 'リストを定義したい[一覧[文字列]]'と'List [String]'のforループ内から新しい 'List [String]'を追加しますか? –

+0

はい、正確です。あなたはそれを私よりもうまく説明しました。 – Kratos

+0

これはScalaですか? kotlin( 'listOf'、' <'ではなく' '')のように見えます。 – dveim

答えて

1
scala> val elements = List("a", "b", "c") 
elements: List[String] = List(a, b, c) 

scala> val twoDimenstionalList: List[List[String]] = List.empty[List[String]] 
twoDimenstionalList: List[List[String]] = List() 

scala> val res = for(element <- elements) yield twoDimenstionalList ::: List(element) 
res: List[List[java.io.Serializable]] = List(List(a), List(b), List(c)) 

まだよく:

scala> twoDimenstionalList ::: elements.map(List(_)) 
res8: List[List[String]] = List(List(a), List(b), List(c)) 
1

あなたは2dEmptyListは可変なりたい場合は、scala.collection.mutable.ListBufferの使用を検討してください:

scala> val ll = scala.collection.mutable.ListBuffer.empty[List[String]] 
ll: scala.collection.mutable.ListBuffer[List[String]] = ListBuffer() 

scala> ll += List("Hello") 
res7: ll.type = ListBuffer(List(Hello)) 

scala> ll += List("How", "are", "you?") 
res8: ll.type = ListBuffer(List(Hello), List(How, are, you?)) 
+0

アドバイスをいただきありがとうございます – Kratos

関連する問題