Look if an array has an specified object

2019-09-04 18:26发布

问题:

I have an array composed of an X number of 2DPoints, and my goal is to do a boolean operation that could check if that array has the specified 2DPoint. Something like this:

Point2D.Double arrayPoints[] = new Point2D.Double[numberOfPoints];
Point2D.Double pointPVariable = new Point2D.Double(positionXVariable,positionYVariable);
arrayPoints[variableNumber] = pointPVariable;

if(arrayPoints has the Point2D(2.45,6.52)){
    do this
}

How can I do that boolean operation?? Thank you very much!

回答1:

Arrays.asList(arrayPoints).contains(new Point2D.Double(2.45,6.52))

This works as long as the classes being compared override the equals method.



回答2:

If your array is sorted with the natural ordering of Point2D.Double, you can use the Arrays.binarySearch method.

if (Arrays.binarySearch(arraysPoints, new Point2D.Double(2.45,6.52)) >= 0) {
    do this
}