gpt4 book ai didi

java - Java中是否可以使用Hashmap存储同一个类的不同实例?

转载 作者:行者123 更新时间:2023-12-01 17:39:30 25 4
gpt4 key购买 nike

我有一个注册程序,用户可以在餐厅预订餐 table 。

由于我需要存储可能无穷无尽的客户,因此我无法显式创建 Customer 类的新实例,因为我需要能够在运行时添加它们。

我考虑过使用 HashMap 通过他们填写的注册表来插入每个用户,但是,它不是保留每个客户的唯一值,而是用 HashMap 中的最新条目覆盖它们。

需要明确的是, key 正在更改,它成功添加了新 key ,但前一个 key 内的值被覆盖

示例

Customer 类有 3 个 setter:set Id、set fname、set lname。

这些只是从注册表单中获取输入并将其分配给每个实例变量。

我使用 Customer cust = new Customer() 创建了该类的唯一实例。并且 HashMap hm = new HashMap()

用户填写表格,选择提交。此提交按钮调用所有 setter 来分配信息。

然后我使用 hm.put(cust.getId(), cust)。

我能够正确检索值客户retrieveCust = (客户)map.get(ID)字符串 fname =retrieveCust.getName()

但是,这只是最新的一组值。因此,如果我有 John doe 和 Jane doe,则每个键只检索 Jane。

有没有办法让它存储 cust 的每个不同“实例”以及表单提交的值?

最佳答案

我假设你有类似 Map<String, Customer> 的东西。键只能有一个值。因此, map 将始终具有您分配给键的最新值。

如果您希望 key 具有不同的值,您应该考虑类似 Map<String, List<Customer>> 的值或Map<String, Set<Customer>> .

关于java - Java中是否可以使用Hashmap存储同一个类的不同实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60983878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com