在我的Groovy應用程序中,我有一個函數每秒被調用幾次,所以我想盡可能快地調用它。這個函數接收一個對象列表,然後做一些魔術,並返回另一個列表。返回列表的內容取決於傳遞給函數的列表內容。如何在Groovy中使用對象列表作爲映射關鍵字
爲了使速度更快,我想緩存返回的列表,因爲函數中的魔法不會經常更改。所以在大約99%的調用中,這個函數爲相同的參數返回相同的列表。
對於執行這樣的緩存我想使用一個地圖。此映射的關鍵應該是函數輸入參數中的列表,並且映射的值應該是函數爲該輸入列表返回的列表。
我的問題是:什麼是使用任意對象列表作爲Groovy映射關鍵字的最佳方式?我想我可以遍歷地圖中的所有鍵,並逐項比較每個列表(地圖的鍵)。但是,這種氣味,我認爲應該有一個更好,更快的方式。
任何想法?
這可能會產生問題。不保證'hashCode'會相同。 [這個測試總是失敗](http://paste.ubuntu.com/7170363/)。 – dmahapatro
是的,我知道列表的順序很重要。但在我的情況下,這很好,訂單不會改變。如果可以的話,也可以讓它緩存兩次... – Matthias