scala - 如何在案例类列表中查找字符串
问题描述
我有一个案例课Color
scala> case class Color(code: String, qty: String, shadecode: String, foo: Int)
我有一个案例类列表
scala> val c = List[Color](Color("100", "10", "99"), Color("200", "20", "88"), Color("300", "10", "99"))
如何确定此字符串是否存在于列表中:
scala> val colorString = "1001099"
字符串的约定总是相同的。前三个字符是code
,接下来两个是qty
,最后两个是shadecode
我尝试了以下方法,但它不起作用,因为我没有传递任何值foo
:
def doesExist(s: String, colors: Color): Boolean = {
return colors.exists(_==Color(code= s.substring(0,3), qty = s.substring(3,4), shadecode = s.substring(5,6)))
}
解决方案
您应该尽早创建密钥,以便搜索更快
case class Color(code: String, qty: String, shadecode: String) {
val k = s"$code$qty$shadecode"
}
val c = List[Color](Color("100", "10", "99"), Color("200", "20", "88"), Color("300", "10", "99"))
c.filter(_.k == "1001099") // Color(100,10,99)
c.exists(_.k == "1001099") // true
推荐阅读
- git - 哪个项目依赖于gitlab上的某个jar?
- php - 我发现在 ajax 调用后很难返回一个 html 表
- openxml - 使用 Open XML 的表格单元格边距
- android - Android Gitlab CI 作业在“模拟器上失败:错误:没有足够的磁盘空间来运行 AVD 'testAVD'。出门……”
- firebase - 使用 Firebase 模拟器作为自己的永久服务器
- javascript - 如何显示下一个 div 并隐藏前一个?
- c# - Process.Start 适用于程序,但在添加参数时失败
- android - 忘记密码用户流程无法正常工作 Azure AD B2C Msal Android
- python - GroupBy + 条件 + 平均值()
- python - 我在 python 中使用 open() 命令时遇到问题