List 如果使用scala在列表中存在特定键,如何从列表中计算元素?

List 如果使用scala在列表中存在特定键,如何从列表中计算元素?,list,scala,List,Scala,我有以下列表结构- "disks" : [ { "name" : "A", "memberNo" :1 }, { "name" : "B", "memberNo" :2 }, { "name" : "C", "memberNo" :3 }, { "name" : "D", } ] 我在列表中有很多元素,我想检查“memberNo”,

我有以下列表结构-

"disks" : [ 
    {
        "name" : "A",
        "memberNo" :1 
    }, 
{
        "name" : "B",
        "memberNo" :2 
    },
{
        "name" : "C",
        "memberNo" :3 
    },
{
        "name" : "D",

    }
]
我在列表中有很多元素,我想检查“memberNo”,如果它存在的话 我要从列表元素中计数

e、 这里的计数是3


如何使用scala检查键是否存在并从列表中获取元素计数???

首先创建类来表示输入数据

case class Disk (name : String, memberNo : String)
下一步从存储库(或其他数据源)加载数据

最后算一算

disks.count(d => Option(d.memberNo).isDefined)

首先创建类来表示输入数据

case class Disk (name : String, memberNo : String)
下一步从存储库(或其他数据源)加载数据

最后算一算

disks.count(d => Option(d.memberNo).isDefined)

以类似于@ SergelaGutin的回答的方式,考虑这个案例类

case class Disk (name: String, memberNo: Option[Int] = None)
其中缺少的
memberNo
默认为
None
;而这个名单,

val disks = List( Disk("A", Some(1)), 
                  Disk("B", Some(2)),
                  Disk("C", Some(3)),
                  Disk("D"))
然后使用
flatMap
我们可以过滤出那些带有一些
memberNo
的磁盘,如下所示

disks.flatMap(_.memberNo)
res: List[Int] = List(1, 2, 3)
就是点票,

disks.flatMap(_.memberNo).size
res: Int = 3
同样,有了一种理解力,

for (d <- disks ; m <- d.memberNo) yield m
res: List[Int] = List(1, 2, 3)

<代码>(d<P)以类似于@ SergelaGutin的回答的方式,考虑这个案例类< /P>
case class Disk (name: String, memberNo: Option[Int] = None)
其中缺少的
memberNo
默认为
None
;此列表

val disks = List( Disk("A", Some(1)), 
                  Disk("B", Some(2)),
                  Disk("C", Some(3)),
                  Disk("D"))
然后使用
flatMap
我们可以过滤出那些带有一些
memberNo
的磁盘,如下所示

disks.flatMap(_.memberNo)
res: List[Int] = List(1, 2, 3)
就是点票,

disks.flatMap(_.memberNo).size
res: Int = 3
同样,有了一种理解力,

for (d <- disks ; m <- d.memberNo) yield m
res: List[Int] = List(1, 2, 3)

用于(d)请注意,case类在表示json数据模型方面非常出色,尤其是与Jackson集成时。请看一个类似的问题,其中我给出了一个使用Jackson的代码示例:请注意case类在表示json数据模型方面非常出色,尤其是与Jackson集成时。请看一个类似的问题,其中我给出了一个使用Jackson的代码示例: