|
1 / 1 / 0
Регистрация: 26.11.2013
Сообщений: 14
|
||||||
Алгоритм сравнение двух списков list, для синхронизации таблицы29.08.2015, 11:19. Показов 6379. Ответов 6
Метки нет (Все метки)
Добрый день форумчане. Очень нужна ваша помощь, срочно. Необходимо сделать синхронизацию локальной таблицы с таблицей загруженной из сервера. Было принято решение поэтапно сравнивать два списка(локальный список и серверный). Первоначально, списки были отсортированы. Далее осталось в этапном сравнивании по id. Если id в локальном списке есть, а в серверном нет, то удаление из локальной бд записи(delete). Если id локальной и серверной равны, то обновление(update). Если id серверной есть, а в локальной нет, до добавление(select). Проблема у меня как раз в поэтапном сравнении, где-то ошибаюсь, что-то не предусмотрел. Скидываю свой алгоритм сравнения и изображения примера. Прошу доработайте его пожалуйста.
Кликните здесь для просмотра всего текста
0
|
||||||
| 29.08.2015, 11:19 | |
|
Ответы с готовыми решениями:
6
Инициализация элементов списка списков (List<List>) происходит одинаково для каждого элемента Объединение двух списков List<string> Сравнение двух списков |
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 29.08.2015, 11:47 | |
|
NIKMC-I, в чем проблема в дебаге пройти и посмотреть где не так работает?
Алгоритм должен быть такой. -Переписать локальный список в HashMap с кючом ID и значением Course -Пройти по списку сервера. Для каждого элемента пытаемся вытащить из мапы элемент по ID. -Если находим, добавляем в список тех кому нужно сделать апдейт и удаляем из мапы -Если не находим добавляем в список кому делать инсерт и удаляем из мапы -После окончания списка сервера, все что осталось в мапе подлежит удалению
2
|
|
|
1 / 1 / 0
Регистрация: 26.11.2013
Сообщений: 14
|
|
| 29.08.2015, 18:30 [ТС] | |
|
Большое спасибо за совет. В следующий раз будут делать так, но в этот раз не могли бы Вы, как опытный программист помочь мне именно с тем алгоритмом, который я начал писать, но не получается сделать.Буду очень признателен.
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|||||||
| 29.08.2015, 20:12 | |||||||
Сообщение было отмечено NIKMC-I как решение
Решение
1
|
|||||||
|
1 / 1 / 0
Регистрация: 26.11.2013
Сообщений: 14
|
|||||||||||
| 29.08.2015, 21:40 [ТС] | |||||||||||
|
Огромное Вам человеческое спасибо. Прошу Вас поправить строчку кода
0
|
|||||||||||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 29.08.2015, 21:53 | ||
|
Ваш код особо не смотрел, но по-моему там сложность O(n^2) и много лишних проходов по коллекции. В моем варианте сложность алгоритма линейная, однако 3млн вы скорее всего несможете обработать т.к нехватит памяти. Если вам надо обрабатывать 3млн, у вас неправильный подход к задаче.
0
|
||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 30.08.2015, 07:17 | ||
|
Я предпочитаю все грузить в таблицы SQLite на флешку (уверен что внешняя флешка не скажет "место закончилось") и в потоке их обрабатывать. С индикаторной полоской в нотифе или в программе. Пусть долго (хоть полчаса/час = раза в 2-5 дольше чем в чистой памяти), но уверен что и 3миллиона будут обработанны "с подтверждением"... Опять-же для ускорения можно разделить на две таблицы - данные и код/статус. Можно подгружать по 100-1000 записей в память в "мапы" и сравнивать там, потом лишь выгружать в базы результаты (в случае зависания потеряю результат обработки лишь последней "сотни")... Хотя... если записей не больше 100-500... (чаты, товары в интернет магазине, новости, ...) можно и в памяти поработать... (ютюб похоже так-же работает - на сотне роликов на странице начинает "тормозить" и жрать память/проц)
0
|
||
| 30.08.2015, 07:17 | |
|
Помогаю со студенческими работами здесь
7
Сравнение двух списков Сравнение двух списков Сравнение двух списков Сравнение двух списков Сравнение двух списков Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|