0

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

例如,我有:

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

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

4

3 回答 3

3

你对Map这里的理解有问题。正在做

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

初始化一个TreeMap由 引用的outerMap。type 参数仅表示,要放置的键需要是 type User,键的值是 type Map<Component, Float>。而已。

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

于 2013-06-06T05:31:22.187 回答
3

在您在地图中添加一些键值对之前,您的地图 summaryByEmp 将为空。所以问

内部地图的价值是什么

不是一开始就出现的

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

如果你想添加它

Map<Component, Float> innerMap = new TreeMap();
summaryByEmp.put(new User(),innerMap  )
于 2013-06-06T05:31:22.817 回答
1

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

Map<Component, Float> mapVal = new TreeMap<>();
/// Fill mapVal
User u = new User();
summaryByEmp.put(u, mapVal);
于 2013-06-06T05:32:11.827 回答