我有一個類屬性其中有2個變量說int a,b;如何使類在Java中的不同HashMap中可用
我想在兩個不同的HashSet中使用class Attribute。
第一個散列集合當a的值相同時認爲對象相等。 但是當b的值相同時,第二散列集合認爲對象相等。
我知道,如果我覆蓋的等於方法HashSet中會用平等的覆蓋版本來比較兩個對象,但在這種情況下,我需要平等的)兩種不同的實現(
的一種方式是創建兩個子類的屬性,併爲他們提供不同的等號方法,但我想知道是否有更好的方法來做到這一點,使我不必創建屬性的子類。
謝謝。
您的問題類型沒有意義。如果'a'是相同的,你的對象是相同的,但不是。那麼如果'b'是相同的物體是相同的,但它們也不是。請製作兩節課,因爲它們是不同目的的不同課程。 – Andre
@Andre我認爲這樣做確實有道理......平等語義可以被認爲是一個類固有的,但是之後也可以進行比較。但是,您可以在某些集合方法中提供自定義比較器。只允許在一個類中定義一個單一的等式定義標準可能是「純粹」的方法,但我認爲給開發者自由和靈活性比堅持非常嚴格的概念更重要。仔細想想...爲什麼Ruby和Scala獲得了牽引力,而Java一直面臨着很多批評? –
自定義比較器的構建和實現與您所描述的完全不同的目的。如果兩個對象的equals()方法返回true,則無論從哪個上下文調用方法,它們都是相同的。 – Andre