Как сохранить уникальный набор точек из двух наборов в новый набор int java (Объекты)? - PullRequest
0 голосов
/ 24 февраля 2020

Как найти уникальный набор точек из первого набора, который не существует во втором наборе, без использования каких-либо встроенных опций.

public class PointSet {

    private Point[] pointArr;
}

public PointSet subtract(PointSet other) {
         // return null;
}

Поэтому моя задача - вернуть новый набор, который имеет элементы первого набора, которые не существуют во втором наборе. Начальный набор должен оставаться прежним.

Например, если у меня есть

@Test
public void pointSetSupportsSubtractingAnotherSet() {
    PointSet a = getSet(new Point(1, 1), new Point(1, 2));
    PointSet b = getSet(new Point(1, 1), new Point(1, 3));

    PointSet remainder = a.subtract(b);

    assertThat(a, is(getSet(new Point(1, 1), new Point(1, 2))));

    assertThat(remainder, is(getSet(new Point(1, 2))));
}

1 Ответ

1 голос
/ 24 февраля 2020

На основе вашего кода, быстрый ответ с использованием removeAll из ArrayList.

public class PointSet {

        private Point[] pointArr;

        public PointSet subtract(PointSet other) {
            // return null;
            PointSet pointSet = new PointSet();
            List<Point> pointArrayList = new ArrayList<Point>(Arrays.asList(pointArr));

            pointArrayList.removeAll(Arrays.asList(other));
            pointSet.pointArr = pointArrayList.toArray(new Point[pointArrayList.size()]);

            return pointSet;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...