我有一個字符串,root?param1=...¶m2=...¶m3=...
,我想創建一個java方法,它將刪除任何重複的參數。這些值始終是相同的,但有時參數會根據應用程序的功能而複製(不要問)。爲此,從字符串中刪除重複的URI參數的最佳方法是什麼?
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是參數的數量)。我認爲這將是非常糟糕的,因爲我將對所有傳入的URI以每分鐘5000次的速度運行此方法。有沒有更好的方法去解決這個問題或者一個開箱即用的java方法來處理一些開銷?
你真的需要那樣做嗎? URL的接收者不能忽略重複(這是大多數實現已經做了什麼,除非你明確地尋找多值參數)? – Thilo 2012-02-20 08:21:12
這就是我想要監視的URL列表。某些頁面具有相同的操作,但可能具有不同的URL(僅由多個重複參數的數量而不同),我寧願爲一個給定的操作提供一頁而不是一打。 – user625032 2012-02-20 08:59:43