获取链接列表中以特定字符开头的所有元素

时间:2016-10-09 15:29:17

标签: java

我有一个我自己创建的链表。我想在以下方法中检索以给定输入的最后一个字符开头的所有元素

public String tracker(String w)
{
    SampleNode d = head();

    while(d != null)
    {
        if(w.charAt(w.length() -1) == d.getElement().charAt(0))
        {
            return d.getElement();
        }
        d = d.getNext();
    }
    return null;
}

我上面的代码只返回第一个元素,但我想要所有的元素。我该怎么办?谢谢!

编辑:对于任何需要正确答案的人

public List tracker(String w)
{
    SampleNode d = head();
    LinkedList another = new LinkedList();

    while(d != null)
    {
        if(w.charAt(w.length() -1) == d.getElement().charAt(0))
        {
            another.add(d.getElement());
        }
        d = d.getNext();
    }
    return another;
}

2 个答案:

答案 0 :(得分:3)

我不会给你工作代码,但可以告诉你该怎么做。

您只是在循环内立即返回元素。那就是你想要的。

获取列表,然后继续添加,最后返回列表。

你差不多完成了,只需要一个新的列表,如果条件添加到里面的列表并最后返回。

答案 1 :(得分:3)

如果您想要包含重复条目的所有元素,那么您最好使用List,如下例所示:

public List<String> tracker(String w) {
    SampleNode d = head();
    // declare list to populate with all elements
    List<String> allElements = new ArrayList<>();
    while (d != null) {
        if (w.charAt(w.length() - 1) == d.getElement().charAt(0)) {
             // add element to the list
             allElements.add(d.getElement());
        }
        d = d.getNext();
    }

    return allElements;
}