在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  Scala/ 怎么從Map里面取出兩種不同種類的HashSet

怎么從Map里面取出兩種不同種類的HashSet

我有兩個HashSet,他們裝著不同的值

var vertexes = new HashSet[String]()
var edges = new HashSet[RDFTriple]() //RDFTriple is a class

然后把他們裝到一個Map里面,那value的泛型只能寫成_

var graph = Map[String, HashSet[_]]()
graph.put("e", edges)
graph.put("v", vertexes)

現(xiàn)在我要從Map里把他們分別取出來可是失敗了,我嘗試過模式匹配

val a = graph.get("v")
a match {    
  case _ => val v = a 
}
val b = graph.get("e")
b match {
  case _ => val e = b
}

但是v和e會被識別為Option[HashSet[_]],而不是我想要的HashSet[String]HashSet[RDFTriple].

我應(yīng)該怎么做才能實現(xiàn)這樣的需求?
這個問題困擾我很久了希望大牛們幫幫我,謝謝。

回答
編輯回答
瘋浪

你為什么不定義一個包裝類呢?

case class Demo(vertexes: Set[String], edges: Set[RDFTriple])

如果你真的想這么去取數(shù)據(jù)

var graph = Map[String, HashSet[_]]()

你可以這么改改

var graph = Map[String, HashSet[Object]]()

取的時候再轉(zhuǎn)回來,不過這樣比較丑,不太建議這么做

2017年8月18日 15:08