讓Abstract
成爲抽象類,A1,A2,...,An
從Abstact
繼承的具體類。 Ai
中的每一個都有一個列表Abstract
和一個在編譯時已知的預定義的基元類型集合,讓我們假設我們有一個hush函數,並且每個具體元素的結構中沒有「循環」。 e1和e2如何散列複合類?
兩個元件是相同的,如果它們具有預定義的原語的相同的值,並且如果在每個E1 Abstract
,存在一個在Abstract
E2使得e1和e2是相同的。 (換句話說,順序並不重要)。
我正在尋找一個很好的散列啓發式這種問題。它不應該(也就是說,據我所知,不可能)是一個完美的散列函數,但它應該在運行時很好且容易計算。
如果有人能給我一些指導方法來實現這樣的功能,或者指導我解決這個問題的文章,我會很高興。
PS我正在用Java編寫,我假設(糾正我,如果我錯了)在hash()
內置將不足以解決這個問題。
編輯:
列表和原語是建設後固定,但在編譯時未知。
訂單不重要的列表?這是一套。 – Pops 2011-03-28 14:09:00
@Torgamus:對於性能問題是「重要的」 - 我爲列表中的每個元素調用一個方法,並且調用順序可能會提高性能。爲了糾正 - 你是對的,這是一套。 – amit 2011-03-28 14:11:33
相關http://stackoverflow.com/questions/3869252/what-is-the-preferred-way-of-implementing-hashcode – andersoj 2011-03-28 14:21:13