【发布时间】:2020-08-21 17:47:50
【问题描述】:
我在迭代 Hash Map 对象时需要帮助更新值。
假设,我有一个这样的 Hash Map 对象,
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("X", "D10023A");
hashMap.put("DATE", "5/1/2020");
hashMap.put("Y", "");
hashMap.put("Z", "");
hashMap.put("A", "");
我需要迭代这个哈希映射对象,在迭代时我们需要检查条件,即如果 Key=DATE 并且它的值 = "5/1/2020",然后需要更新/设置其他键,即 Y、Z ,A 值是,从空(“”)字符串到一些整数值。
请帮帮我。
【问题讨论】:
-
如果您知道要检查什么键以及要更新什么键,为什么还需要遍历
HashMap? -
因为我有更多这样的对象,需要迭代并且 DATE 值可能不同,所以我需要检查 DATE = 5/1/2020 然后只需要更新其他值。
-
老实说,这看起来就像您正在使用地图来完成它并不真正适用的事情。您确定使用将属性 X、Y、Z、A 和 Date 封装在单个对象中的自定义类不会更好吗?
-
在
Map中,一个键下只能存储一个值。如果需要在一个键下存储多个值,则应使用Map<K, List<V>>。但是话又说回来……人们会遍历Listobtained bymap.get("DATE")`,而不是遍历地图本身。我赞同@OHGODSPIDERS 的评论。 -
因为当我使用 entrySet() 进行迭代时,我已经在一个索引中。我的问题是,尽管我们在一个索引中,我们是否可以选择在下一个条目中进行更新?