Я не думаю, что такие Коллекции или Карты существуют (но я также впервые услышал об этом конструкторе).Я проверил Гуава , но я не думаю, что у них тоже есть решение.
Но я думаю, что это может быть легко достигнуто с помощью шаблона декоратора.Напишите объект делегата, который реализует нужный вам интерфейс и делегирует все методы внутреннему объекту.Ваша оболочка также содержит LinkedHashSet / LinkedHashMap (в зависимости от того, имеете ли вы дело с коллекцией или картой), которая регистрирует доступ к данным.
Теперь ваши методы iterator () / entrySet () предоставляют представление, которое сначала поддерживаетсяLinkedHashSet / Map, а затем по остальным данным (или наоборот, если вы хотите изменить порядок доступа).
Я бы реализовал его, используя методы-оболочки, подобные тем, которые используются в классе Collections.
Например,
Map<String,String> map = CollectionUtils.viewMapByAccessOrder(
new HashMap<String,String>());
List<String> list = CollectionUtils.viewListByAccessOrder(
new ArrayList<String>());
Это может быть функциональность, которая имеет смысл для более широкой аудитории.Я хотел бы рассмотреть возможность запроса функции в проекте Guava .