代码是:
Iterator<Map.Entry<PCNode,ArrayList<PCEdge>>> it=arcsMap.entrySet().iterator();
while(it.hasNext()){
Map.Entry<PCNode,ArrayList<PCEdge>> p=it.next();
if(p.getKey().hashCode()==list.get(0).hashCode())
System.out.println(arcsMap.get(list.get(0))+p.getValue().toString());
}
输出结果是:
null[proteinconnection.visualization.ui.PCEdge@eb7859]
问题:
通过枚举可以发现存在与list.get(0)相对应的Entry,但直接arcsMap.get(list.get(0))返回的却是null
Iterator<Map.Entry<PCNode,ArrayList<PCEdge>>> it=arcsMap.entrySet().iterator();
while(it.hasNext()){
Map.Entry<PCNode,ArrayList<PCEdge>> p=it.next();
if(p.getKey().hashCode()==list.get(0).hashCode())
System.out.println(arcsMap.get(list.get(0))+p.getValue().toString());
}
输出结果是:
null[proteinconnection.visualization.ui.PCEdge@eb7859]
问题:
通过枚举可以发现存在与list.get(0)相对应的Entry,但直接arcsMap.get(list.get(0))返回的却是null
解决方案 »
- eclipse 运行多线程问题
- 请高手解释一下
- 小弟是JAVA新手!耽误大家半分钟提个基础问题!!谢谢大哥们
- 帮我看一下这个小程序为什么出错?
- 免费的 Java GUI 开发工具 Netbeans 介绍
- 求高手点拨一个“Java语言的项目代码中的错误”原因.
- 弱弱的问:socket通讯的client和server端能实现单模式吗?
- 请问各位:如何编译Java的程序。多谢!
- 请问SDK1.3 的源代码从哪开始看啊,我怎么也没个头绪.
- 刚接触java,一个模拟多线程的聊天程序,不知道注释掉的代码为什么删掉程序正常运行,保留程序出错...
- 昨天面试一家蛮厉害的公司的一道题目 100分求解
- 怎么把特定文件的路径名字存到指定字符串中?
你是不是自己 看 字符 比较的 ?List里的是对象不是简单字符串8? map是用对象比较的, 也许 你应该重写equals 方法
我写的是一个绘制网络图的软件.
PCNode是顶点类,PCEdge是边
list.get(0)与put时的参数key,会是同一个实例简单的说是:
HashMap<PCNode,ArrayList<PCEdge>> arcsMap=new HashMap<PCNode,ArrayList<PCEdge>>();
arcsMap.put(list.get(0),new ArrayList<PCEdge>());
arcsMap.get(list.get(0));
返回的就是null
PCNode extends Ellipse2D.Double
而Ellipse2D.Double重载了hashCode,是要据x,y,height,width算的
我因为是网络绘图,PCNode的这四个元素已改变,故hashCode改变.解决方法是调用根类Object的hashCode()方法