我目前有这段代码:
Map<Site, LinkedList<Site.Hosts.Host>> map = new HashMap<Site, LinkedList<Site.Hosts.Host>>();
for (PerformanceCounter element : pc) {
Site s = new Site();
s.id = Short.parseShort(element.getSite_id());
s.name = element.getSite_name();
s.location = element.getSite_location();
Site.Hosts.Host h = new Site.Hosts.Host();
h.id = Short.parseShort(element.getHost_id());
if (!map.containsKey(s)) {
map.put(s, new LinkedList<Site.Hosts.Host>());
} else {
map.get(s).add(h);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在阅读的 PerformanceCounters 列表是:
1, C-01, New York, 1001
1, C-01, New York, 1002
1, C-01, New York, 1003
Run Code Online (Sandbox Code Playgroud)
其中 101 是 ID,C-01 是名称,纽约是位置。
不幸的是,我的代码为我的地图创建了 3 个键值。
我无法生成 1 个键和 3 个值LinkedList。
我的if( !map.containsKey(s) )部分无法正常工作,我不知道如何解决这个问题。
Site.java你是班级的作者吗?如果是,请确保您有正确的实施hashCode()和equals()方法。
使其正常工作的基本合同是:
equals()那么它们必须具有相同的hashCode().hashCode()并不意味着它们相等。evaluating hasCode()方法中使用任何对象属性,它们也必须在实现中使用 equals()。| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |