【问题标题】:How to modify key in hashmap?如何修改哈希图中的键?
【发布时间】:2015-11-14 06:32:54
【问题描述】:

我正在执行有关航班预订应用程序的任务。我遇到了关于修改存储用户(包括客户端和管理员)的Hashmap 的密钥的问题。

密钥是一串个人信息的列表,例如电子邮件、密码、地址等。我应该怎么做才能更改某些信息?

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

【问题讨论】:

  • 这听起来像一个可怕的设计。你在使用面向对象吗?
  • 为什么这很可怕?你能解释一下吗。我和我的团队有一个 crc 模型,我的部分必须有编辑用户信息的方法。
  • 好的,我查看了 Stackflow 上的一些帖子,发现更改键并保持值不变可能不好。但这是否意味着我的想法永远不会以任何方式发挥作用?
  • 你说的是“键是字符串列表”,键应该是单个对象,例如一个字符串、一个数字,而不是字符串的任意组合。

标签: java hashmap key


【解决方案1】:

试试

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

一旦输入密钥,您就无法更改它。唯一的办法就是更换它。

【讨论】:

  • 你写的不一定正确。如果您有可变对象的键,那么基本上您的 hashCode 可能会更改,因此您的键会更改。因此建议使用不可变对象作为哈希映射中的键
  • 他们声明字符串的方式将决定它们是可变的还是不可变的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 2017-08-16
  • 1970-01-01
  • 2014-01-30
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多