如何在链表中的 Java 中编写包含方法?
How to write a contains method in Java in linkedlist?
我在编写一个应该在链表中查找元素的代码时遇到了麻烦,如果找到了它 returns 则为真,否则为假。
这是我的代码:
import java.util.Scanner;
import java.util.LinkedList;
class LinkedListDemo {
private static LinkedList<Integer> list;
public static void main(String args[]) {
list = new LinkedList<Integer>();
Scanner s = new Scanner(System.in);
list.add(10);
list.add(21);
list.add(32);
list.add(43);
list.add(54);
System.out.println("LinkedList:" + list);
System.out.println("\nDoes the List contains '10': " + search(10));
}
public static boolean search(int i) {
if (list.equals(i)) {
return true;
}
else return false;
}
}
我可以使用 linkedlist 包中提供的 contains 方法,但我希望能够创建我自己的方法来做同样的事情。而且我的方法总是 returns false,我似乎无法弄清楚为什么
它总是返回 false 因为 list
是一个 List
而 i
是一个 int
,所以它们不能相等,因为它们不是同款。
您可能想在搜索主体周围包裹一个 for 循环
public static boolean search(int i) {
for(int item : list)
if(item == i) return true;
return false;
}
我在编写一个应该在链表中查找元素的代码时遇到了麻烦,如果找到了它 returns 则为真,否则为假。
这是我的代码:
import java.util.Scanner;
import java.util.LinkedList;
class LinkedListDemo {
private static LinkedList<Integer> list;
public static void main(String args[]) {
list = new LinkedList<Integer>();
Scanner s = new Scanner(System.in);
list.add(10);
list.add(21);
list.add(32);
list.add(43);
list.add(54);
System.out.println("LinkedList:" + list);
System.out.println("\nDoes the List contains '10': " + search(10));
}
public static boolean search(int i) {
if (list.equals(i)) {
return true;
}
else return false;
}
}
我可以使用 linkedlist 包中提供的 contains 方法,但我希望能够创建我自己的方法来做同样的事情。而且我的方法总是 returns false,我似乎无法弄清楚为什么
它总是返回 false 因为 list
是一个 List
而 i
是一个 int
,所以它们不能相等,因为它们不是同款。
您可能想在搜索主体周围包裹一个 for 循环
public static boolean search(int i) {
for(int item : list)
if(item == i) return true;
return false;
}