Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 比较ListBuffer中的元素_Scala_Listbuffer - Fatal编程技术网

Scala 比较ListBuffer中的元素

Scala 比较ListBuffer中的元素,scala,listbuffer,Scala,Listbuffer,我有两个列表缓冲区: lstbufhichchange是lstbufStatic的子集。我想做的是,找到一种方法来比较这两个集合,如果lstbufWhichChange的元素顺序与lstbufStatic相同,即使它不包含所有元素,它也是一个子集。如何操作?使用内置函数的一种方法是: 首先获取列表中的公共元素 val commonEle = lstbufWhichChange.intersect(lstbufStatic) 然后,从lstbufStatic获取commonEle列表中存在的

我有两个列表缓冲区:


lstbufhichchange是lstbufStatic的子集。我想做的是,找到一种方法来比较这两个集合,如果lstbufWhichChange的元素顺序与lstbufStatic相同,即使它不包含所有元素,它也是一个子集。如何操作?

使用内置函数的一种方法是: 首先获取列表中的公共元素

  val commonEle = lstbufWhichChange.intersect(lstbufStatic)
然后,从lstbufStatic获取commonEle列表中存在的元素

列表应等于commonEle列表


在您提供的示例中,lstbufWhichChange在一后面,因此commonEle.equalslist将返回false。但如果交换这些元素,则返回true。

使用内置函数的一种方法是: 首先获取列表中的公共元素

  val commonEle = lstbufWhichChange.intersect(lstbufStatic)
然后,从lstbufStatic获取commonEle列表中存在的元素

列表应等于commonEle列表


在您提供的示例中,lstbufWhichChange在一后面,因此commonEle.equalslist将返回false。但如果交换这些元素,则返回true。

我的解决方案如下:

  val res = lstbufWhichChange.foldLeft(true, lstbufStatic)((s, e) => {
    val l = s._2.dropWhile(_ != e)
    (s._1 && l.nonEmpty, l)
  })

  println(res._1)

我的解决方案如下:

  val res = lstbufWhichChange.foldLeft(true, lstbufStatic)((s, e) => {
    val l = s._2.dropWhile(_ != e)
    (s._1 && l.nonEmpty, l)
  })

  println(res._1)

听起来像是一个递归的解决方案。检查LSTBUFHICHCHANGE的第一个元素是否出现在lstBufStatic中如果出现,则递归并检查LSTBUFHICHCHANGE的尾部元素的顺序与lstBufStatic的其余元素的顺序相同您的LSTBUFHICHCHANGE不应包含零,因为它是一个子集。我说得对吗?@srgfed01,是的,你说得对。我纠正了它,thnx。听起来递归解决方案很有效。检查LSTBUFHICHCHANGE的第一个元素是否出现在lstBufStatic中如果出现,则递归并检查LSTBUFHICHCHANGE的尾部元素的顺序与lstBufStatic的其余元素的顺序相同您的LSTBUFHICHCHANGE不应包含零,因为它是一个子集。我说得对吗?@srgfed01,是的,你说得对。我纠正了它,thnx.thnx。这正是我所需要的。thnx也给其他人。thnx代表这个。这正是我所需要的。thnx也发送给其他人。thnx用于此备选方案。.headOption.nonEmpty与.nonEmpty.thnx用于此备选方案。.headOption.nonEmpty与.nonEmpty相同。