【发布时间】:2016-07-02 19:42:02
【问题描述】:
我正在尝试删除我的HashMap 中与所有keys 关联的所有values,但仍然保留密钥。
以下是正确的/最有效的方法吗?
for (Map.Entry<Kennel, List<Dog>> entry : hashMap.entrySet()) {
String key = entry.getKey().getId();
List<Dog> dogList = entry.getValue();
//Loop through the list associated with each key and delete each Dog in the list
for (int i=0; i<dogList.size(); i++){
dogService.delete(dogList.get(i));
dogService.save(dogList.get(i));
}
}
【问题讨论】:
-
我不知道您要在这里完成什么,但如果您只想要唯一键,那么您可能应该使用
HashSet而不是HashMap。 -
你想达到什么目的?
Map.keySet()将返回所有的密钥,如果你把它们放在一个新的集合中,你得到的只是密钥的副本。 -
什么是
dogService -
@java123999 这不是您要解决的问题,而是您认为合适的解决方案。
-
鉴于您的代码,我认为您根本不需要删除这些值。您可以通过重新考虑您需要实现的目标以及您如何接近解决方案来走得更远。你所要求的既奇怪又不必要。
标签: java for-loop data-structures hashmap