-1
下面代碼比較兩個解釋,並且如果一個元件被包含在另一個列表則該元素被輸出:比較的功能等效的兩個列表
var containList = new scala.collection.mutable.ListBuffer[String]()
//> containList : scala.collection.mutable.ListBuffer[String] = ListBuffer()
val lines2 = List("2", "3", "4") //> lines2 : List[String] = List(2, 3, 4)
for (l <- lines2) {
isStringInFile(l)
}
def isStringInFile(str: String) = {
val lines = List("115", "t2t", "3")
for (l2 <- lines) {
if (l2.contains(str)) {
containList += l2
}
}
} //> isStringInFile: (str: String)Unit
for (c <- containList) {
println(c) //> t2t
//| 3
}
這是一個必要的解決方案。但是有沒有功能實現?
第一種方法似乎在第二的光,而沒有必要的。 – 2014-11-05 18:31:21
如果列表很大,您應該考慮在相交之前將它們轉換爲Map(.toMap)。當前的解決方案運行時複雜度爲O(n^2);如果你先轉換成地圖,它將是O(n) – Maxim 2014-11-05 19:10:58
@ChrisMartin True。只是想顯示一些簡單的方法,如果OP正在嘗試學習。 – mohit 2014-11-05 19:36:59