private <A, B> Map<B, A> invertMap(Map<A, B> map) {
Map<B, A> reverseMap = new HashMap<>();
for (Map.Entry<A, B> entry : map.entrySet()) {
reverseMap.put(entry.getValue(), entry.getKey());
}
return reverseMap;
}
Важно помнить, что put
заменяет значение при вызове с тем же ключом. Так что если вы на карте имеете две клавиши с одинаковым значением, то только одна из них будет существовать в перевернутой карте.
Между тем у меня есть обходное решение: this.Request.RequestUri.OriginalString внутри метода GET даст полную ссылку как строку без каких-либо интерпретаций. Остальное - получить соответствующую переменную с помощью операций string.substring.
Тем не менее, она хотела бы знать, знает ли кто-нибудь более элегантное решение.