为什么我的Hashmap <boolean,string>只有两个条目?

时间:2018-05-29 10:04:07

标签: java hashmap

我使用HashMap存储boolean类型的字典和indexName值。但是我注意到我的hashmap只有2个大小。为什么会发生这种情况?我该如何解决?

class MapView(ListView):
    fields = ["name"]
    model = Venue
    queryset = Venue.objects.prefetch_related('offer_set')
    template_name = "venues/venue_map.html"

3 个答案:

答案 0 :(得分:0)

只需以这种方式更改地图声明:

Map<String, Boolean> metadatas = new HashMap<>();

和以这种方式放置的元数据:

metadatas.put(indexable.indexName(), indexable.dictionary());

也许这就是你真正想做的事情。

答案 1 :(得分:0)

您使用的是Map<Boolean,String>,其中密钥为Boolean,值为String

现在,Map不支持重复密钥。

  

将键映射到值的对象。地图不能包含重复的键;每个键最多可以映射一个值。

因此,您将受限于密钥,因为Boolean只能包含3个值truefalsenull ...以及HashMap允许null

  

此实现提供所有可选的映射操作,并允许空值和空键

您的最大尺寸为3。

答案 2 :(得分:0)

很明显,您使用布尔值作为哈希映射中的键。 现在对于Hashmap,下面是真的。 1.它应该有唯一的键(否则,它将覆盖与键对应存储的现有值)。 和 2.布尔值可以有两个值为true或false(不能为null), 所以地图中只有两个值。

如果您想要字典,则应修改MAP,如下所示。

Map<Integer, String> metadatas = new HashMap<Integer, String>();

索引:应该是一些数字,所以键是整数。 值应为String。