我有一個應用程序必須先收集一些外部數據,然後將它們變成對象。之後,它會對數據進行一些分析。當我迭代地圖時,會獲得什麼數據類型?
我設法收集數據並將其放入地圖。該映射包含每個未來對象的唯一鍵,以及構建該對象所需的數據的ListBuffer。
現在我想從這張地圖創建一個對象列表,並且不知道如何從地圖中獲取我的數據。我之前沒有和地圖一起工作(是的,我對這種語言很陌生),但是發現a question其中說,當我想訪問地圖的一個元素head
時,我得到了一個元組的鍵和值。我希望當我用map
(該方法)遍歷地圖時,我會得到相同的結果,但這似乎不起作用。我在Scala編程中看過,但找不到一個地方說我在迭代地圖時得到的東西。
這裏是我想要做什麼的MWE:
//This code will gather number names from different languages and then create objects of type Number containing each name.
import scala.collection.mutable
import scala.collection.mutable.ListBuffer
class Number (val theNumber: Int, val names: List[String]) {
override def toString = theNumber + " is known as " + names.mkString(", ") + "."
}
// Construct a map holding example data
val numbersAsMap = mutable.Map.empty[Int, ListBuffer[String]]
numbersAsMap += (1 -> new ListBuffer[String])
numbersAsMap += (2 -> new ListBuffer[String])
numbersAsMap += (3 -> new ListBuffer[String])
numbersAsMap(1) += "one"
numbersAsMap(1) += "eins"
numbersAsMap(1) += "uno"
numbersAsMap(2) += "two"
numbersAsMap(2) += "zwei"
numbersAsMap(2) += "due"
numbersAsMap(3) += "three"
numbersAsMap(3) += "drei"
numbersAsMap(3) += "tre"
// Create a list of numbers
numbersAsMap map ((key, value) => new Number(key, value.toList)).toList
// error: missing parameter type
// obviously I'm not getting tuples, let's try it another way
numbersAsMap.keys map (key => new Number(key, numbersAsMap(key).toList)).toList
// it throws the same error as above :(