2015-06-02 3 views
0

Я суетился о том, как извлечь ключ из карты Scala. Карты в вопросе проста:правильное использование scala Map keyset

Следующая функция, чтобы получить ключ от Scala Карты находится здесь под:

def extractKey(myMap: Map[String, String]): String { 
    //process myMap 
     myMap = Map("SSN" -> "1") 


     //return "SSN" 
} 

val myMap = Map("Visa Number" "10") 

Как извлечь строку Visa Номер от него?

Хорошо, я попытался это много до сих пор: myMap.keySet и я вывел набор из него, как: scala.collection.immutable.Set[String] = Set("Visa Number")

Я немного запутался, чтобы продолжить.

Я попытался следующие: myMap.keys это возвратило Iterable [String] = Set ("Visa Номер")

Я также попытался следующие:

myMap.keysIterator that returned an Iterator[String] 

Итак, что такое лучший способ получить ключ из карт MyMap

Теперь, что если бы я имел длинную карту как:

myMapLonger = Map("SSN" -> "10", "AMEX" -> 11) 

тогда как бы я захватил ключи и поместил их в список?

благодаря

+0

Я не могу получить то, что вы хотите. Is'nt 'myMapLonger.keySet.toList' или' myMapLonger.keysIterator.toList' достаточно? – ymonad

+0

Опишите типы ввода и возврата функции, которую вы ищете – Daenyth

+0

. Я добавлю больше контекста вокруг вопроса. @ ymonad..что я хочу, чтобы просто извлечь ключ из карты в виде строки или в виде списка – user3825558

ответ

1
Map("SSN" -> "10", "AMEX" -> 11).keys.toSeq 

или

Map("SSN" -> "10", "AMEX" -> 11).toSeq.map(_._1) 
0

Один подход invloves применяя unzip на данный Map,

val (keys,values) = Map("SSN" -> "10", "AMEX" -> 11).unzip 

которая обеспечивает двухтактный списков, первая запись с помощью клавиш , второй со значениями

keys: List(SSN, AMEX) 
values: List(10, 11)) 
Смежные вопросы