Создайте индекс в списке. Сканировать список и заполнить индекс:
HashMap<Integer, Object2> index=HashMap<Integer, Object2>();
for (Object2 obj2: list2) {
index.put(obj2.object1id, obj2);
}
Затем сканируйте список и выполните соединение:
for (Object1 obj1: list1) {
Object2 obj2=index.get(obj1.id); // may be null
Object3 obj3=new Object3(obj1, obj2);
}
Для всех, кто читает его, цитата из первой ссылки:
Мы рекомендуем сначала обновить до последней доступной минорной версии в своей основной версии. Делая это, вы можете адресовать любые сообщения об устаревании, которые могут изменить поведение в следующем основном выпуске.
blockquote>Исходя из приведенной ниже таблицы, путь обновления GitLab будет 10.5.4 -> 10.8. (последний) , исправьте устаревшие значения, затем 10.8 -> 11.8 [ 1111]. На странице ясно, что можно (, вероятно, ) переходить между любыми патчами / минорными версиями , не проходя промежуточные этапы:
Считается безопасным переход между версиями патча и минорной версией в одной основной версии.
blockquote>Второй источник - это, вероятно, раздел Обновление без простоя , который находится ниже раздела, связанного в вопросе.
Начиная с GitLab 9.1.0, можно перейти на более новую версию GitLab для основных, вспомогательных или исправлений, не переводя экземпляр GitLab в автономный режим. Однако, чтобы это работало, существуют следующие требования:
blockquote>
- Вы можете обновлять только 1 дополнительный выпуск за раз. То есть с 9,1 до 9,2, а не с 9,3.
Затем приводятся сведения о фоновых процессах, необходимых для миграции. Они существенны, поэтому имеет смысл, что прыгать через несколько минорных версий может быть немного, не рекомендуется. Одна дополнительная версия за раз для обновления без простоя. Полезно, когда вы в курсе, но, возможно, стоит пропустить так много второстепенных версий, чтобы пройти.