我有一个我自己创建的链表。我想在以下方法中检索以给定输入的最后一个字符开头的所有元素。
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;
}
答案 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;
}