2016-02-18 2 views
0

У меня есть требование, где я несколько кортежей входя.структуре данных Scala для хранения нескольких переменных, которые могут быть использованы в collection.contains или collection.exisits

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

мне нужно хранить эти значения в структуре данных и создать их коллекцию. Далее я получу еще один кортеж в качестве ввода (a, 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))