2015-11-14 74 views
0

我正在做一個有關機票預訂應用的任務。我遇到了修改存儲用戶(包括客戶端和管理員)的密鑰Hashmap的問題。如何修改hashmap中的密鑰?

這些密鑰是個人信息字符串列表,如電子郵件,密碼,地址等。我應該怎麼做來改變一些信息?

個人信息的格式如下:Number,DepartureDateTime,ArrivalDateTime,Airline,Origin,Destination and Price。

+2

這聽起來像一個可怕的設計。你是否使用了Object Orientation? –

+1

爲什麼這太可怕了?你能解釋一下嗎?我和我的團隊有一個crc模型,我的部分必須具有編輯用戶信息的方法。 –

+0

好的,我查看了Stackflow上的一些帖子,發現改變這些鍵並保持值不變可能不太好。但這是否意味着我的想法永遠不會以任何方式工作? –

回答

0

嘗試

Object obj = map.remove("oldKey"); 
map.put("newKey", obj); 

一旦你進入你不能改變它的關鍵。唯一的辦法是取代它。

+0

你寫的不一定是正確的。如果你的鍵是可變對象,那麼本質上你的hashCode可能會改變,因此你的關鍵變化。因此,建議在散列圖中使用不可變對象作爲鍵 –

+0

所以我認爲字符串列表是可變的嗎? –

+0

他們通過聲明你的字符串來確定它們是否可變或不可變 – JavaFox