Вы можете выполнить некоторую однократную предварительную обработку, которая преобразует List<String> RecordIdByPriority
в HashMap<String, Integer>
, который сопоставляет каждый элемент списка с его положением в списке.В вашем примере {A -> 0, D -> 1, E -> 2}.Затем выполните один проход по списку RecordId
, чтобы найти минимальный элемент в соответствии с хэш-картой.Элементы, не найденные на карте, имеют неявный приоритет + бесконечность.
Это означает, что вы можете найти элемент в O (n), где n - длина списка идентификаторов записей.