【发布时间】:2015-01-02 04:55:57
【问题描述】:
我有一个链表实现程序,我在其中比较两个 Object 值。 List 可以有任何类型的 Object 值。然后我有一个删除重复项的功能。在比较双精度值时,它并没有给出正确的位置,因为它适用于所有其他类型。 这是代码sn-p:
//Method to remove duplicates using two pointers
public void removeDups2(){
if(head.getNextNode() == null)
return;
Node currentNode = head, runnerNode;
while(currentNode != null){
runnerNode = currentNode;
while(runnerNode.getNextNode() != null){
if(runnerNode.getNextNode().getValue() == currentNode.getValue()){
runnerNode.setNextNode(runnerNode.getNextNode().getNextNode());
listcount--;
}
else{
runnerNode = runnerNode.getNextNode();
}
}
currentNode = currentNode.getNextNode();
}
}
但是,如果我用 .equals() 替换 if 条件,那么它会起作用。
if((runnerNode.getNextNode().getValue()).equals(currentNode.getValue())){
我尝试在下面进行测试:
double a = 159.25, b = 159.25;
System.out.println(a == b);
它会提供 true 输出。
如果我遗漏了什么,请告诉我。
【问题讨论】:
标签: java linked-list