2015-11-14 76 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