Scala 如何检查ArrayBuffer中是否存在值?

Scala 如何检查ArrayBuffer中是否存在值?,scala,arraybuffer,Scala,Arraybuffer,我是Scala的新手,我正在编写一个程序,其中我有一个二进制图像点的ArrayBuffer,我想在一个循环中检查该ArrayBuffer中是否存在一个不添加的特定点。这是我正在编写的代码的一部分: var vectVisitedPoint= new scala.collection.mutable.ArrayBuffer[Point]() var pTemp=new Point (0,0) var res = new Array[Byte](1) img.get(pTem

我是Scala的新手,我正在编写一个程序,其中我有一个二进制图像点的ArrayBuffer,我想在一个循环中检查该ArrayBuffer中是否存在一个不添加的特定点。这是我正在编写的代码的一部分:

var vectVisitedPoint= new scala.collection.mutable.ArrayBuffer[Point]()
    var pTemp=new Point (0,0)
    var res = new Array[Byte](1)
    img.get(pTemp.x.toInt,pTemp.y.toInt,res) //img is a binary image
    var value1: Int=0
    var value2: Int=0
    scala.util.control.Breaks.breakable {
            while((value1 < img.rows ) ){
                    while ( (value2 < img.cols )){
                             if (res(0) == -1 && vectVisitedPoint.exists(value1,value2)) {//this is where I want to check if the current point (value1,value2) is already exists in vectVisitedPoint
                                    pTemp.x=(pTemp.x.toInt)+value1
                                    pTemp.y=(pTemp.y.toInt)+value2
                                    vectVisitedPoint.append(new Point(pTemp.x,pTemp.y)
                                    scala.util.control.Breaks.break()
                              }
                    value2=value2+1
                    img.get(value1,value2,res)
                    }
            value2=0
            value1=value1+1
            }
    }
}
var-vectVisitedPoint=new scala.collection.mutable.ArrayBuffer[Point]()
var pTemp=新点(0,0)
var res=新数组[字节](1)
get(pTemp.x.toInt,pTemp.y.toInt,res)//img是一个二进制图像
变量值1:Int=0
变量值2:Int=0
scala.util.control.Breaks.breakable{
而((值1
我想我需要用另一种方式写,但不知道怎么写

谢谢。

您可以使用:

vectVisitedPoint.exists(_ == (value1, value2))

您希望我将您的代码重构为更少的代码、更具功能性、更易于阅读且可能更高效的方式吗?如果是这样,我会提出另一个问题。

您是从Java接口翻译代码吗?img.get是您自己的方法还是来自API?此外,您确定您的程序中的逻辑正确吗?如果你打破了这个循环,你就从img开始。计算前一行中的某个点。这就是你想要的吗?@Ashalynd我没有翻译它,是的,如果我想在我的图像中找到一行,算法是有效的,但我想找到所有的行,比较它们,得到最长的一行。这是一个有很多行的骨架图像。所以这里是用来指示线的起点的,我想把线的所有点放在一个数组缓冲区中,将它作为已访问的点,下次我想找到线的另一个起点时,我会检查它是否已被访问。这就是程序所做的