Scala-如何在地图上使用过滤器

Scala-如何在地图上使用过滤器,scala,Scala,如果我有文件名和大小的映射,我想根据它的大小进行过滤,我可以这样做 val fileCount = Map("a.txt"->10, "b.txt"->0) 第一条路 val zeroSizeFiles = fileCount.filter(t=>t._2 != 0) val zeroSizeFiles = fileCount.filter{case(fileName, count) => count == 0} 或 我意识到,我可以做这样的事情,更详细 第二种方式

如果我有文件名和大小的映射,我想根据它的大小进行过滤,我可以这样做

val fileCount = Map("a.txt"->10, "b.txt"->0)
第一条路

val zeroSizeFiles = fileCount.filter(t=>t._2 != 0)
val zeroSizeFiles = fileCount.filter{case(fileName, count) => count == 0}

我意识到,我可以做这样的事情,更详细

第二种方式

val zeroSizeFiles = fileCount.filter(t=>t._2 != 0)
val zeroSizeFiles = fileCount.filter{case(fileName, count) => count == 0}

所以,使用第二种方式和第一种方式相比有什么缺点,或者除了更容易阅读之外还有什么优点

不,它们三个都是相等的。有人可能会争辩说,第二种方法可能会稍微慢一点,因为需要额外调用unapply进行模式匹配,但通常可以忽略这一点。注意,对于第二种方式,我将这样编写:
filter{case(u,count)=>count==0}
(注意空格和下划线
u
,以忽略元组的第一个组件)。