Самый простой подход заключается в том, чтобы получить пользовательский фильтр по ключу карты и обработать его, а затем удалить его с карты, а затем выполнить итерации по остальной части карты.
Map<String, ? extends FilterRegistration> filters = servletContext.getFilterRegistrations();
processFilter(filters.get("MyCustomFilterThatNeedsToBeFirst"))
filters.entrySet().stream().filter(key -> key.equals("MyCustomFilterThatNeedsToBeFirst"))
.forEach((k,v) -> processFilter(v));
другой подход, который я могу придумать, заключается в том, что вы можете создать двустороннюю очередь, используя deque , где вы создаете deque путем итерации карты и установки указанных c * 1006. * к передней части deque, а остальные к задней. и, наконец, обработать элементы в деке один за другим.
Надеюсь, это поможет
Редактировать ==================== =================
Если вам нужно установить приоритет для фильтра, вы можете сделать это, добавив аннотацию @Order(Ordered.HIGHEST_PRECEDENCE)
в класс фильтра. Вы также можете дать пронумерованный приоритет, например @Order(1)