Scala 如何查找在映射键中找到的最大值

Scala 如何查找在映射键中找到的最大值,scala,Scala,我有一个map[String,String]类型的映射,其键如下: "dealership_id_1" "dealership_id_3" "dealership_id_7" "dealership_id_39" 如何从密钥中获取ID的最大值?i、 e.在这种情况下是39 将id值提取到列表中是否困难? 名单(1,3,7,39) 我的map可能有100个键,因此我认为这应该是一个性能问题。使用正则表达式: val id = """_(\d+)""".r val ids = map.keys.c

我有一个map[String,String]类型的映射,其键如下:

"dealership_id_1"
"dealership_id_3"
"dealership_id_7"
"dealership_id_39"
如何从密钥中获取ID的最大值?i、 e.在这种情况下是39

将id值提取到列表中是否困难?
名单(1,3,7,39)

我的map可能有100个键,因此我认为这应该是一个性能问题。

使用正则表达式:

val id = """_(\d+)""".r
val ids = map.keys.collect { case id(x) => x }
使用正则表达式:

val id = """_(\d+)""".r
val ids = map.keys.collect { case id(x) => x }
100条参赛作品并不多


100个条目并不多

我同意@Alvaro Carrasco解决方案,但
map.keys.map()
实际上创建了新的集合。我宁愿使用
迭代器
,但它不能做到这一点:

def maxKeySuffix[T](map: Map[String, T]): Int = 
      map.keys.iterator.map(_.stripPrefix("dealership_id_").toInt).max

我确实同意@Alvaro Carrasco解决方案,但是
map.keys.map()
实际上创建了新的集合。我宁愿使用
迭代器
,但它不能做到这一点:

def maxKeySuffix[T](map: Map[String, T]): Int = 
      map.keys.iterator.map(_.stripPrefix("dealership_id_").toInt).max

这些钥匙有什么共同之处?前缀“经销商id”或其他什么?这些钥匙有什么共同点?前缀“经销商id”或其他什么?