【发布时间】:2021-06-05 04:59:21
【问题描述】:
给定一个我想用作键的对象Set,我怎样才能轻松获得一个Map 实例,将值保留为空?
目的是在确定要存储的值之前使用键预先填充映射。
当然,我可以创建一个空映射,然后循环这组可能的关键对象,同时对每个对象执行 put,并将 null 作为值。
Set< Month > months = EnumSet.of( Month.MARCH , Month.MAY , Month.JUNE ) ;
Map< Month , String > map = new EnumMap<>( Month.class ) ;
for( Month month : months )
{
map.put( month , null ) ;
}
我只是想知道是否有一个巧妙的技巧可以用更少的代码来做到这一点。类似于Map#keySet 的反义词。
【问题讨论】:
-
什么样的
Map?您可以编写自己的Map实现,该实现接受Set进行初始化和/或由Set支持。否则是不可能的。使用 for 循环或Stream(本质上与 for 循环相同)。...编辑: 用键预填充Map的原因是什么? -
@BenjaminM 任何
Map实现都可以。我总是可以将该映射传递给我想要的另一个Map的构造函数。
标签: java dictionary set instantiation