是否有可能創建一個密鑰是一個集合(任何類型的集合)的地圖?創建一個集合作爲關鍵的地圖?
如果我在最常見的集合上嘗試它,我被告知該集合不能轉換爲可比較的集合。
我一直在努力爲自定義集合寫一個compareTo函數,但我掙扎着。
要麼我需要寫compareTo,要麼我需要找到一個預製Map來接受Maps所接受的collections/Collection。
如何將集合用作地圖上的鍵?我已經看過堆棧溢出,我已經多次搜索這個問題,但我從來沒有找到一個可靠的解決方案!
我想這樣做的原因是我寫了一個模擬卡洗牌的「混洗」模擬。我希望能夠計算特定手(作爲集合建模)出現的次數。這將是這個樣子:
H4,C3,D2: 8
H9,D6,S11: 10
......
爲什麼要使用一個集合作爲首位關鍵? Map背後的整個概念是不可變的鍵,集合直接違反了這個概念。 –
這不是一個好主意,除非集合是隻讀的,它們可能會改變,結果改變了equals和hashCode的行爲,並且很可能給出結果很難預測什麼時候檢查if密鑰已經存在或者在地圖中檢索密鑰的同時。 –
您可以使用ArrayList的toString方法來使用String作爲鍵,或者您可以使用自定義格式化程序爲您創建一個字符串,每次追加到字符串時都需要刪除舊字符串的條目。 – phntmasasin