【发布时间】:2015-06-28 10:02:22
【问题描述】:
我有一个链表
private LinkedList<Node> vertices;
这里是类节点
public class Node
{
String value;
linkedList edges ;
public Node()
{
value=null;
edges=new linkedList();
}
}
现在我上面提到的 LinkedList 包含我图中的节点。我想要做的是将字符串值传递给一个方法。这个方法应该检查 LinkedList 中的节点是否包含一个值等于的节点我传递的值。如果是这样,它应该返回节点的索引。
这是我尝试做的事情
public Node getNode(String value)
{
int index=vertices.indexOf(value);//this is where the problem is.
//index is getting assigned a value -1
return vertices.get(index);
}
并以这种方式调用方法
temp2=getNode(header[dest]);
但是对方法vertices.indexOf(value) 的调用返回-1(-1 表示它没有它。尽管它有一个值等于我传递的值的节点)。我如何检查与我传递的值匹配的值的节点。
顶点是节点类型,我正在传递一个字符串值。
【问题讨论】:
-
indexOf 方法用于在另一个字符串中定位一个字符或字符串。 indexOf 返回一个整数,其值是字符串中子字符串开始的位置。 如果未找到子字符串,则返回 -1。因此,如果您正在寻找“abc”并且一个节点包含“xabc”,那么您会得到一个匹配项。如果一个节点包含“yaleabcistheone”,你也会得到一个匹配。我相信您说过您希望字符串完全匹配,因此您想使用“.equals”而不是 indexOf**
-
这不是问题。问题是我正在向 indexof 方法发送一个字符串值。它无法将字符串与节点进行比较。要么我发送一个节点而不是字符串值,要么我需要一些机制来将一个节点与一个字符串值进行对比。
标签: java linked-list