我的链接列表没有返回正确的值或正确更新列表

时间:2017-06-13 17:18:51

标签: java linked-list

当我的程序来到这个方法时,似乎永远不会更新目标值。如果我输入" dave"它将保持" dave"无论对该方法进行了多少次调用。

input[type=text],input[type=email],input[type=password] {...}

如果我通过这个addFriend方法添加朋友,firstFriend将最终打印最后添加的名称。如果输入的名称是rob bill和travis 输出将是travis travis travis。

function copy() {

var regex = /^(.*)/gm;
var subst = '\#\1';
var originaltxt = $('#result1').val().replace(regex, subst);
$('#id1').html(originaltxt .trim());

}

<textarea class="result" id="result1" rows="10" cols="150" style="font-size:11px;resize: none; width:225px;">
User 1 prefix_ago 
Hi How are you 
User 2 prefix_ago
I am good How about you 
 </textarea> 
<button onClick="copy()" > Copy & Replace</button>
<div id="id1">

</div>

2 个答案:

答案 0 :(得分:2)

您总是在循环的第一次迭代中返回。如果找到该人,则返回(if分支),如果不是,则返回nullelse分支)。相反,你应该继续迭代,直到你找到正确的人或耗尽列表。第一个条件BTW是循环的子集(如果firstPersonnull目标将立即成为null),并且可以(应该!)也被删除:

public Person lookup(String name){
    Person target = null;
    for (target = firstPerson; target != null; target = target.nextPerson) { 
         if (name.equals(target.name)) {
              return target;
         }
    }
    return target; // Or null explicitly - matter of taste.
}

答案 1 :(得分:1)

if(name.equals(target.name)){
          return target;
         }
        else {
            return null;
        }

其他部分需要消失。这段代码的效果是它只检查第一个值,如果它不是你要查找的值,它会立即显示出来。

更改

return target; // replace this line

return null; 并删除上面提到的其他部分