Лучший алгоритм для сравнения 2 коллекций объектов и определения, какие объекты были отредактированы, а какие являются новыми - PullRequest
0 голосов
/ 05 июля 2019

Если у вас есть коллекция объектов (Col A) с возможными дубликатами, и вы хотели бы знать, основываясь на данных, структурированных таким же образом, уже присутствующих в базе данных, какие объекты в этой коллекции были отредактированы, а какиеСовершенно новый, какие алгоритмы вы бы использовали в каком порядке для достижения наилучших результатов?

Я пробовал следующие шаги с очень медленными результатами:

  1. Преобразовать в хэш-набор и обратно в коллекцию А вудалить дубликаты
  2. Сортировать коллекцию на основе свойств первичного ключа
  3. Получить объекты (коллекция B), присутствующие в БД, на основе данных в первом объекте (> =) и последнем объекте (<=) коллекцииA. </li>
  4. Выполните итерацию по коллекции A, чтобы найти объект в коллекции B
    • Если отсутствует, поместите в коллекцию NewObjects
    • Если имеется, сравните все свойства 1 на 1, чтобы увидеть, является ли объектгрязный и впоследствии помещенный в коллекцию EditedObjects

Увы, слишком много грязного кода, чтобы шоw что-нибудь полезное.

Я не верю, что мой подход оптимален, и хотел бы знать, есть ли более разумные альтернативы

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