2016-10-03 46 views
-2

我正在尝试通过链接列表进行搜索并更新给定字符串名称的某个节点中的数据。我不明白我出错的地方。我在运行该程序时没有收到任何错误,但“更新”的数据从未发生变化。 我LinkedList类我updateGpa方法通过传递字符串更新LinkedList中的节点

public void updateGpa(String name, double gpa){ 
    Node<Student> temp = head; 
    double foundData; 
    boolean exists = false; 
    for(int i = 0; (i < size) && !exists; i++){ 

     if(temp.data.getName().equals(name)){ 
      foundData =gpa; 
      temp.data.setGpa(foundData); 
      exists = true; 
     } 
     temp = getNode(i); 

    } 
} 

我的主要方法,我称之为updateGpa方法

System.out.println("Update a students GPA by entering their name: "); 
    student = in2.next(); 
    System.out.println("Enter " + student + "'s new GPA: "); 
    gpa = in1.nextDouble(); 
    studentList.updateGpa(student, gpa); 
    break; 

学生名单是我的链接列表。

+0

你调试了解'updateGpa()'认为它做了什么吗? – John3136

+0

当我调试它说成功提交 – Chris

+0

什么是'in2'?一个java.util.Random对象?如果是的话,你是否确保一个随机名称由一个整数值组成的学生在你的列表中? – AKSW

回答

0

我已经解决了我自己的问题,不幸的是我必须把它填充到我的主要方法中的用户错误我有学生= in2.next它应该在in2.nextLine它只是读取名字而不是第一个和最后一个名字,所以当它比较updateGpa方法中的字符串时,它永远不会找到匹配,因为字符串不完全相等。对不起,浪费你的时间,但感谢你的输入