当前位置:  开发笔记 > 编程语言 > 正文

Scala获得满足条件的ArrayBuffer的第一个元素

如何解决《Scala获得满足条件的ArrayBuffer的第一个元素》经验,为你挑选了1个好方法。

我有一个var类型ArrayBuffer.

var selected = new ArrayBuffer[Component](0)

我想从中提取满足给定条件的第一个元素.

var res = selected.filter(_.node == neighbour)(0)

我想要类似上面这一行的东西,但是如果没有元素满足那个条件,我想res成为null.相反,代码抛出错误.

如何获得满足条件的第一个元素或null



1> knutwalker..:

首先,使用find而不是过滤器,它将返回第一个过滤器Option.然后使用orNull获取值或null缺少值:

val res = selected.find(_.node == neighbour).orNull

或者你可以使用filter,headOptionorNull

val res = selected.filter(_.node == neighbour).headOption.orNull

作为处理时的一种强制性注释null:使用Option而不是nullscala惯用和推荐的方式.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有