加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala中的列表未获得更新

发布时间:2020-12-16 09:51:58 所属栏目:安全 来源:网络整理
导读:我是 Scala Collections的新手,目前我想将给定的字符串列表分成两个列表(List [String],List [String])的元组,其中包含回文字符串列表和其余输入字符串. 例如, 如果输入是List(“racecar”,“abcd”,“lilil”,“effg”) 输出应该是(List(“racecar”,“lili
我是 Scala Collections的新手,目前我想将给定的字符串列表分成两个列表(List [String],List [String])的元组,其中包含回文字符串列表和其余输入字符串.

例如,
如果输入是List(“racecar”,“abcd”,“lilil”,“effg”)
输出应该是(List(“racecar”,“lilil”),List(“abcd”,“effg”))

我有一个使用过滤器的解决方案.但是,目前,尝试使用foldLeft优化我的解决方案.我的新方法如下:

def stringTuples2(strings: List[String]): (List[String],List[String]) = {
strings.foldLeft((List[String](),List[String]()))((b,a) => {
  if (a.equals(a.reverse)) { b._1 :+ a; b }
  else { b._2 :+ a; b }
})}

我不确定,我做错了什么,但这个解决方案的输出是两个空列表的元组,即(List(),List()).

感谢帮助.谢谢!

解决方法

您尝试修改b会创建一个新的List,然后将新的List抛出并返回b,它将保持不变.取出; b部分并返回更新的元组:(b._1:a,b._2)或(b._1,b._2:a)

顺便说一句,这是解决方案的另一种方法.

List("racecar","abcd","lilil","effg").partition(s => s == s.reverse)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读