Для хранения списка элементов, которые нужно отсортировать, наилучшим выбором будет класс ArrayList или LinkedList. Оба класса являются реализациями интерфейса List, который позволяет хранить элементы в определенном порядке и обеспечивает удобный доступ к элементам по индексу.
Для реализации механизма обновления объектов списка так, чтобы сначала обновлялись те, которые дольше всего не обновлялись, можно использовать специализированную структуру данных, например, PriorityQueue, которая позволяет хранить элементы в порядке их "приоритета". В каждом элементе списка можно хранить время последнего обновления объекта, а затем использовать PriorityQueue для выбора элементов для обновления в соответствии с временем последнего обновления.
Для хранения объектов с временем их последнего обновления также можно использовать ConcurrentSkipListMap, который представляет собой отсортированную коллекцию данных, обеспечивающую эффективный доступ по ключу и поддерживающую синхронизацию для многопоточного доступа. Однако, необходимо учитывать, что ConcurrentSkipListMap требует больше ресурсов и может не быть оптимальным выбором для определенных сценариев использования.
Таким образом, рекомендуется использовать PriorityQueue для управления порядком обновления объектов по времени последнего обновления, и при необходимости можно применять ConcurrentSkipListMap для хранения объектов с временем их последнего обновления с учетом особенностей данной структуры данных.