0
我有一個鏈接列表實現程序,我在其中比較兩個Object值。列表可以具有任何類型的Object值。然後我有一個功能來刪除重複。在比較雙重值時,它並不適用於所有其他類型。 這裏是代碼片段:在java中比較double值給出了奇怪的答案
//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((runnerNode.getNextNode().getValue()).equals(currentNode.getValue())){
我試圖測試這個下面:
double a = 159.25, b = 159.25;
System.out.println(a == b);
,它給真正輸出。
請讓我知道我是否缺少任何東西。