2016-02-18 16 views
0

我有一個要求,其中i有多個元組中發出的多個可變的Scala數據結構。,用於存儲能夠在collection.contains使用或collection.exisits

For eg: (a1, b1) 
     (a2, b2) 
     (a3, b3) 

我需要存儲在數據結構將這些值並創建這些的集合。 接下來我會得到另一個元組作爲輸入(an,bn),我需要檢查它是否存在於集合中。

我使用一類具有兩個變量來存儲它和創建對象的集合,然後使用如下

collection.exists(object => object.a == an && object.b == bn) 

我可以使用任何其他更好的方式來實現這一目標或任何其它數據結構來使用,而不是創建類變量a和b

+0

你需要的元組作爲類存儲在您的收藏?你不能像他們那樣存儲它們嗎(作爲元組)? – ccheneson

+0

是的,我可以將它們存儲爲元組。但我認爲兩者都會有相同的表現,對吧?我應該使用Set還是Map以獲得更好的性能 – Alok

回答

0

如果可以將它們存儲爲元組,則可以檢查集合contains(an,bn)。包含在特徵SeqLike中定義。

你並不需要一個鍵值集合,所以設置足夠

下面應該工作

val collections = Set(("a1","b1"),("a2","b2"),("a3","b3")) 
val test = ("a2","b2") 
val test2 = ("a4","b4") 

println(collection.contains(test)) 
println(collection.contains(test2))