#scala #collections #set #tuples
#scala #Коллекции #набор #кортежи
Вопрос:
У меня есть значение в Scala , которое является Set
кортежем Long
и Double
, и я должен присвоить Длинные значения новому набору, чтобы иметь возможность искать его пересечение с другим набором длинных значений.
Так что мои наборы были бы
firstSet : Set[(Long, Double)] secondSet : Set[Long]
Я хочу поместить Long
значения firstSet
в новый набор, чтобы применить метод пересечения в secondSet
качестве аргумента.
Можно ли сделать это эффективным способом? Я очень новичок в Scala, поэтому я не просто хочу делать кучу вложенных операторов If.
Комментарии:
1. Вам просто нужно
map
на первомSet
2. и
Set
имеетintersect
метод
Ответ №1:
Используйте map
, чтобы получить первое Long
значение из каждого кортежа и создать новый набор. Обратите внимание , что элементы в кортеже имеют доступ ._1
._2
и так далее.
val firstSet = Set((0l,0.0), (1l, 1.0)) val firtSet: Set[(Long, Double)] = Set((0,0.0), (1,1.0)) firstSet.map(t =gt; t._1) val res5: Set[Long] = Set(0, 1)
Затем вы используете этот результат для пересечения с другим набором