如何从双向链表中搜索 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!");
问题是您没有在循环内更改 temp
或 cursor
变量。我只能猜测 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;
}
关键是来自用户的输入。 我正在尝试将 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!");
问题是您没有在循环内更改 temp
或 cursor
变量。我只能猜测 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;
}