【发布时间】:2015-01-04 22:45:19
【问题描述】:
public boolean contains(Object data)
{
Node temp = new Node(data);
Node current = head.getNext();
for(int i = 0; i < size(); i++)
{
//System.out.println(current.getData());
if(temp.getData() == current.getData())
{
System.out.println("true");
return true;
}
else
{
current = current.getNext();
}
}
return false;
}
我的代码在上面,无论如何它都会返回 false。如果它找到一个真条件,它会打印“真”,它仍然返回假。我在这里做错了什么?我有完全相同的功能,除了它返回一个整数而不是布尔值,并且它在相同的方法/代码下工作得非常好。4
我的功能相同且工作正常:
public int indexOf(Object data)
{
Node temp = new Node(data);
Node current = head.getNext();
for(int i = 0; i < size(); i++)
{
if(temp.getData() == current.getData())
{
return i;
}
current = current.getNext();
}
return -1;
}
【问题讨论】:
-
您将不得不添加更多上下文。我们不能只是猜测。提供一个完全可重现的例子。
-
@SotiriosDelimanolis 我所做的只是
if(LL.contains("something") == true) //print -
如何比较 Java 中的字符串?我怀疑打印
"true"。 -
LL 是一个包含 3 个节点的对象(单链表),代码太大,无法添加(200+ 行)
-
@SotiriosDelimanolis 我有完全相同的代码,除了在另一种方法中使用 Integer 而不是 Boolean 并且它返回正确的值。我也会附上那个方法。