gpt4 book ai didi

scala - 查找 ListBuffer[List[String]] 的公共(public)元素的有效方法是什么?

转载 作者:行者123 更新时间:2023-12-02 06:28:01 26 4
gpt4 key购买 nike

我有一个 ListBuffer[List[String]]。我想在列表中找到共同的元素。

示例输入:

ListBuffer[List["a", "b", "c", "d"], List["a", "c", "e", "f"], List["a", "c", "g"]]

输出:

List["a", "c"]

我正在执行以下操作,但它效率不高并且需要时间处理更大的列表。

val _length = _listBuffer.length
val _flattenList = _listBuffer.flatten
val _commonValues = _flattenList.groupBy(identity).mapValues(_.size)
.filter({ case (x, y) => y == _length })
.keys

最佳答案

解决方法之一是对 ListBuffer 应用缩减,在缓冲区内与列表相交:

val buffer = ListBuffer(List("a", "b", "c", "d"), List("a", "c", "e", "f"), List("a", "c", "g"))

val result = buffer.reduce{ _.intersect(_) }
println(result)

// List(a, c)

关于scala - 查找 ListBuffer[List[String]] 的公共(public)元素的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50524931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com