迭代当前链表而不明确引用它

时间:2013-02-19 18:25:02

标签: java linked-list

我有一个链表,我需要编写一个方法来将输入作为字符串并检查链表中的所有元素以进行匹配,该方法必须返回匹配数。

问题是我需要引用当前的链表而不将其作为方法的输入。

public int count(E elem) 
{
    int count;
    for (E list : x)
    {
        if(this.removeAtHead().equals(elem))
        {
            count++;
        }
        else{}
    }
    return count;
}

我需要用当前的链表替换x。

使用该方法的一个例子是:

public static void main(String[ ] args) 
{
    LinkedList<String> first = new LinkedList<String>();

    first.insertAtTail("abc");
    first.insertAtTail("def");
    first.insertAtTail("def");
    first.insertAtTail("xyz");

    System.out.println( first.count("def") ); // prints "2"

    first.insertAtTail(null);
    first.insertAtTail("def");
    first.insertAtTail(null);

    System.out.println( first.count("def") ); // prints "3"
    System.out.println( first.count(null) ); // prints "2"
}

2 个答案:

答案 0 :(得分:1)

只需将其设为for (E list : this),如下所示:

public int count(E elem) 
{
    int count;
    for (E list : this)
    {
        if (removeAtHead().equals(elem))
        {
            count++;
        }
    }
    return count;
}

答案 1 :(得分:0)

您是否可以在类中创建一个包含List /或列表列表的私有变量(如果需要跟踪多个列表)。然后,您可以在此类的其他函数中引用该列表,或使用getter和setter。