Ключ печати и список соответствующих значений

#scala

#scala

Вопрос:

Мне нужно вывести ответ типа String, Iterable[String] , где String равен ключу 3 и Iterable[String] представляет собой список values , соответствующий ключу 3 .

Учитывая следующее:

  Array[(String, String)] = Array((2,1), (2,1), (2,3), (2,3), (2,1), (2,4), (3,2), (2,2), (2,4), (3,2), (2,4), (2,3), (3,2), (3,2), (2,5), (2,5), (2,7), (2,1), (2,6), (3,3), (2,5), (3,2), (15,2), (3,2))
  

Ответ должен быть:

 3, [2,2,2,2,3,2,2]
  

Кто-нибудь знает, как я могу это сделать?

Спасибо.

Ответ №1:

Вы можете сделать это путем фильтрации по ключу и сопоставления:

 def f(array:Array[Int], key:Int) = 
  (key, array.withFilter(_._1==key).map(_._2).toList)