我想定義一個二維列表前一個for循環事後我想追加到它1D列出一個for循環,像這樣:定義二維表並追加名單,它在一個for循環,斯卡拉
var 2dEmptyList: listOf<List<String>>
for (element<-elements){
///do some stuff
2dEmptyList.plusAssign(1dlist)
}
上面的代碼不起作用。但我似乎無法找到解決方案,它非常簡單!
我想定義一個二維列表前一個for循環事後我想追加到它1D列出一個for循環,像這樣:定義二維表並追加名單,它在一個for循環,斯卡拉
var 2dEmptyList: listOf<List<String>>
for (element<-elements){
///do some stuff
2dEmptyList.plusAssign(1dlist)
}
上面的代碼不起作用。但我似乎無法找到解決方案,它非常簡單!
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))
如果你想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?))
謝謝你的建議 – Kratos
你要定義一個'列表[列表[字符串]'和在List [String]'的for循環中追加新的List [String]? –
是的,確切地說。你描述得比我更好。 – Kratos
你確定這是Scala嗎?看起來像kotlin('listOf','<''''''')。 – dveim