У меня есть строка, root?param1=...¶m2=...¶m3=...
, и я хочу создать Java-метод, который удалит все дублирующиеся параметры. Значения всегда будут одинаковыми, но иногда параметры дублируются в соответствии с функцией приложения (не спрашивайте). Для этого,
HTTP://root?param1=value¶m2=value2¶m2=value2param3=value3¶m3=value3¶m1=value¶m1=value
становится
HTTP://root?param1=value¶m2=value2¶m3=value3
Я слишком долго не программировал, чтобы вспомнить лучшие способы сделать это, но мой первоначальный ход мыслей прошел примерно так:
Захватите каждый параметр и вставьте во временный массив, пропустите временный массив и сравните, совпадает ли массив [i] с любым другим именем параметра. Если так, удалите. Если нет, добавьте обратно к возвращаемой строке. В конце цикла выведите возвращаемую строку.
Но для этого потребуется O (n) для длины URI плюс O (m)! для размера массива (m является числом параметров). Я думаю, это было бы очень плохо, учитывая, что я буду запускать этот метод со скоростью 5000x в минуту для всех входящих URI. Есть ли лучший способ сделать это или использовать готовый Java-метод, который обрабатывает некоторые накладные расходы?