向 HashMap 添加一个键而不添加值?
有没有一种方法可以在不添加值的情况下向 HashMap 添加键?我知道这看起来很奇怪,但我有一个 HashMap
我希望首先能够根据需要创建键,然后检查某个键是否存在,如果因此,输入适当的值,即 ArrayList
这足够令人困惑了吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
由于您使用的是
Map>
,因此您真的正在寻找multimap。我强烈建议使用第三方库,例如 Google Guava - 请参阅 Guava 的Multimaps
.Java 8 更新:我不再相信每个
Map>
都应该重写为多重映射。如今,无需 Guava 即可轻松获得所需内容,这要归功于Map#computeIfAbsent()
。Since you're using a
Map<String, List<Object>>
, you're really looking for a multimap. I highly recommend using a third-party library such as Google Guava for this - see Guava'sMultimaps
.Java 8 update: I'm no longer convinced that every
Map<K, SomeCollection<V>>
should be rewritten as a multimap. These days it's quite easy to get what you need without Guava, thanks toMap#computeIfAbsent()
.我不确定你想这样做。您可以将
null
存储为键的值,但是如果您这样做,当您执行.get("key")
时,如何才能知道该键是否存在存在还是确实存在但具有null
值?无论如何,请参阅 文档。I'm not sure you want to do this. You can store
null
as a value for a key, but if you do how will be able to tell, when you do a.get("key")
whether the key exists or if it does exist but with anull
value? Anyway, see the docs.您可以输入
null
值。HashMap
允许您也可以首先使用
Set
,并检查它的键,然后填充映射。You can put
null
values. It is allowed byHashMap
You can also use a
Set
initially, and check it for the key, and then fill the map.是的,这已经够令人困惑的了;)我不明白为什么你想要存储没有值的键,而不是仅仅放置空数组列表而不是
null
。添加
null
可能是一个问题,因为如果您调用并收到
null
,那么您不知道该键是否未找到,或者它是否存在但映射到空
...Yes, it was confusing enough ;) I don't get why you want to store keys without values instead just putting empty arraylists instead of
null
.Adding
null
may be a problem, because if you calland receive a
null
, then you do not know, if the key is not found or if it is present but maps tonull
...