【发布时间】:2018-06-01 10:45:41
【问题描述】:
Map<Integer, Configuration> m
Configuration {
int configNumber;
Map<Integer, Pair<Set<Address>, Set<Integer>>> groupInfo;
}
我的地图 m 本质上将 configNumber 映射到 Configuration 类。未来的 configNumber 需要来自先前 configNumber 值的信息。但是,当我在我的地图中添加一个新的 configNumber 时,第二个 Set<Integer>> 跟在新放置的 configNumber 的 Set<Integer>> 后面。例如:
首字母:
- 键:
0,值:Configuration(configNum=0, groupInfo={1=([server3, server2, server1],[1, 2, 3, 4, 5, 6, 7, 8, 9, 10])})
当我添加一个新键时,说 1:
键:
0,值:Configuration(configNum=0, groupInfo={1=([server3, server2, server1],[6, 7, 8, 9, 10])})键:
1,值:Configuration(configNum=1, groupInfo={1=([server3, server2, server1],[6, 7, 8, 9, 10]), 2=([server6, server5, server4],[1, 2, 3, 4, 5])})
如您所见,配对中的键 0 的右 Set<Integer> 会随着最近放置的内容而变化。我认为这是一个参考问题。但是每次我创建一个new HashMap<>() 并在访问它之前将所有值放在那里。任何提示将不胜感激。
【问题讨论】:
-
能否提供调用map的
put()方法的代码? -
"
Map<Integer, Pair<Set<Address>, Set<Integer>>>" 这种类型的签名非常糟糕。你应该考虑创建一个特定的类来代替Pair。