在java中初始化地图的地图

时间:2013-06-06 05:27:51

标签: java collections nested

如果我在Java中有Map Map并且我初始化了外部地图,那么内部地图的值是什么(null或new Map())?

例如,我有:

Map<User, Map<Component, Float>> summaryByEmp = new TreeMap<>();

现在,内部地图的价值是什么?我是否也需要初始化?

3 个答案:

答案 0 :(得分:3)

您在此处对Map的理解有问题。做

Map<User, Map<Component, Float>> outerMap = new TreeMap<User, Map<Component, Float>>()

初始化TreeMap引用的outerMap。 type参数只表示,要放置的键必须是User类型,键的值必须是Map<Component, Float>类型。没什么。

因此,当您插入所提及类型的键值对时,将其插入TreeMap

答案 1 :(得分:3)

如果您在地图中添加了一些键值对,那么您的地图summaryByEmp将为空。所以问题

  

内部地图的价值是什么

不会出现在第一个地方

Map<User, Map<Component, Float>> summaryByEmp = new TreeMap<>();

如果要添加

Map<Component, Float> innerMap = new TreeMap();
summaryByEmp.put(new User(),innerMap  )

答案 2 :(得分:1)

它没有任何价值,就像类型UserComponentFloat一样。您需要将数据添加到地图中,如:

Map<Component, Float> mapVal = new TreeMap<>();
/// Fill mapVal
User u = new User();
summaryByEmp.put(u, mapVal);