我想用扫描仪在链表中搜索,但我做不到。我不用扫描仪也能搜索。这段代码有什么问题?
我的搜索方法:
public void Search(Object data){
Node tmp = head ;
while(tmp != null ){
if(tmp.getData() == data){
System.out.println("Your input is in the list");
}
tmp = tmp.getNext();
}
}和我的主类:
public static void main(String[] args) throws ParseException {
LinkedList list =new Linkedlist();
...... // adding methods etc.
Scanner input = new Scanner(System.in);
System.out.println("Enter your input: ");
String x=input.next();
list.Search(x);
}发布于 2016-04-13 08:36:09
您正在将String参数传递给search(data),该参数将被转换为Object。
您需要将Object data参数类型转换为String类型,或者将方法签名更改为显式接受String类型
发布于 2016-04-13 14:10:30
要根据Adam的建议进行构建,您可以考虑以下代码:
public void Search(String data){
Node tmp = head ;
while(tmp != null ){
if(tmp.getData().equalsIgnoreCase(data)){
System.out.println("Your input is in the list");
}
tmp = tmp.getNext();
}
}您应该使用.equals()或.equalsIgnoreCase()来比较字符串,而不是通过==进行比较,后者将彼此作为对象进行比较。
https://stackoverflow.com/questions/36585924
复制相似问题