如何从双向链表中搜索 int 键?

How to search int key from doubly linkedlist?

关键是来自用户的输入。 我正在尝试将 int 键与字符串 id 进行比较,看看它们是否相等。 如果字符串 id == int 键。然后 return 这个 link。 否则,我想比较列表中的所有 ID。

1. Add a student to records
2. Remove a student from records
3. Search a student from records
4. Display all students in records
5. Quit

当我输入 3 个学生时,它只比较第一个和最后一个。 我该如何解决?感谢您的帮助:)

public Link searchStudent(int key)
{ 
    Link temp = new Link(null,null);
    temp = cursor;
    int idNumber=0;

    if(size>=key){
        System.out.println("Ready to Search...");       
        for(int i = 0; i < size; i++){

            System.out.println("key--->"+key);
            System.out.println("id--->"+temp.getId());

            idNumber = Integer.parseInt(temp.getId());
            if(idNumber==key)
                System.out.println("You found it!");
            else
                temp = cursor.next;
        }

    }
    return temp;        
}

您可以尝试将 String 与 int 匹配

        if(temp.getId().equals(key+""))
            System.out.println("You found it!");

或这个

  String sKey=key+"";   
  if(skey.equals(temp.getId())
       System.out.println("You found it!");

问题是您没有在循环内更改 tempcursor 变量。我只能猜测 cursor 在你的 class 中意味着什么,但如果你将它视为列表的头部,那么你需要在每次迭代时更改 temp。此外,当您发现 id 等于 key 的元素时,我猜您想停止搜索。请参阅下面的代码。

public Link searchStudent(int key) { 
    Link temp = cursor;
    int idNumber = 0;

    if(size >= key) {
        System.out.println("Ready to Search...");       
        for(int i = 0; i < size; i++) {

            System.out.println("key -> " + key);
            System.out.println(" id -> " + temp.getId());

            idNumber = Integer.parseInt(temp.getId());
            if(idNumber == key) {
                System.out.println("You found it!");
                break;
            } else {
                // Here!
                temp = temp.next;
            }
        }

    }
    return temp;        
}