Golang中的地圖如何比較鍵?出於某種原因,我需要一個結構作爲一個關鍵,其中有2個值。我想要映射比較只有第一個值,而不是第二個。其次是爲了我的使用。像在java中一樣,我可以自定義equals
方法,所以地圖裏面只有logically equal
個鍵。有沒有辦法做到這一點?在Golang中,如果我將結構作爲關鍵字,我可以自定義鍵比較嗎?
編輯:看起來沒有辦法做到這一點。所以我現在把我的問題放在這裏。請幫助我在'Go-way'中思考。
所以,我想實現一個'定時映射',它跟蹤鍵的插入時間。換句話說,有一個接受和處理值的地圖。現在,如果地圖中的數據比特定的時間間隔更早,那麼我應該清除它。
所以,我想有一個關鍵的結構,它有ID和時間戳。當一個新的密鑰出現時,map會將其與id和currentTimeInMillis一起使用。過了一段時間,如果一個關鍵字已經存在,那麼map應該保留第一次插入時間並且只更新值數組。
爲了處理,我將有一個循環映射,並檢查是否有任何特定的鍵內部超過閾值限制,然後我清除它。我可以在值數組中有這個時間戳,但也有它自己的時間戳,所以再加一個可能會混淆別人。
請提出建議。
不,你不能改變地圖散列的方式。 – JimB
哦,這是個壞消息。我需要找到一些替代方案。 Golang非常「有限」。 :-( – theGamblerRises
@theGamblerRises不限制你想做什麼?不要在golang中實現java代碼 – khrm