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的代码示例: