我已經試過這HashMap with multiple values under the same key,和我的HashMap現在看起來是這樣HashMap<String, List<Place>> placeMap = new HashMap<>();
還試圖把對象,而不是地方(地方是我的超類)。但是,當我建立我的子類,並希望將其添加到HashMap中,我得到:
The method put(String, List) in the type
HashMap<String,List<Place>>
is not applicable for the arguments (String, NamedPlace)
和
The method put(String, List) in the type
HashMap<String,List<Place>>
is not applicable for the arguments (String, DescPlace)
這裏是我加入其創建的錯誤:
NamedPlace p = new NamedPlace(x,y,answer,col,cat);
placeMap.put(answer, p);
DescPlace dp = new DescPlace(x,y,answer, desc, col, cat);
mp.add(dp);
placeMap.put(answer, dp);
NamedPlace和DescPlace都是P的子類花邊,我想他們都在同一個HashMap中..
OP
我工作的一個小項目在這裏。問題是我需要在項目的這個部分使用HashMap而不是ArrayList,因爲HashMap對於搜索來說快很多。我創建了一個HashMap是這樣的:
HashMap<String, Object> placeMap = new HashMap<>();
該字符串對象的名稱,但事情是,不止一個對象可以有相同的名稱。所以我在我的搜索字段中搜索一個對象,並且我想將所有那些具有該名稱的對象存儲到一個ArrayList中,以便我可以在其中更改信息。
的對象有很多的不同的價值觀,比如姓名,職務,一些布爾等
我需要創建一個hashCode方法到我的對象類應創造一個獨特的哈希碼?
使用'地圖<字符串,列表>' –
由於地圖值現在是一個'名單',你必須'set'和'/從地圖上該類型的GET'對象。要添加一個'NamedPlace',檢索列表(如果存在)並**將NamedPlace添加到列表中** –
SJuan76
您非常接近解決方案,只需更改'placeMap.put(answer,p);'到'placeMap.get(answer).add(p);'。確保您不會遇到未初始化的列表中的每個條目。 –