Java 如何检查成员是否存在
所以我已经实现了insert方法,它工作得很好,但是我的问题是如何检查一个成员是否已经在列表中,我希望程序检查该成员是否已经在列表中,但是检查程序不工作。如果成员包含在列表中,我希望程序将该成员放入team1,如果该成员不在列表中,则显示“成员不存在”。我做了一个检查方法,但不起作用。我是编程新手,我真的需要帮助。请用你的知识来启发我Java 如何检查成员是否存在,java,Java,所以我已经实现了insert方法,它工作得很好,但是我的问题是如何检查一个成员是否已经在列表中,我希望程序检查该成员是否已经在列表中,但是检查程序不工作。如果成员包含在列表中,我希望程序将该成员放入team1,如果该成员不在列表中,则显示“成员不存在”。我做了一个检查方法,但不起作用。我是编程新手,我真的需要帮助。请用你的知识来启发我 class Node { protected String info; protected Node next; public Node(
class Node
{
protected String info;
protected Node next;
public Node(String value)
{
info = value;
next = null;
}
}
class LinkedList
{
private Node head;
private int count;
public LinkedList()
{
head = null;
count = 0;
}
public void insert( String name)
{
Node a = new Node(name);
a.next = null;
count++;
if (head == null)
{
head = a;
return;
}
for(Node cur = head; cur != null; cur = cur.next)
{
if (cur.next == null)
{
cur.next = a;
return;
}
}
}
public void checker(String name)
{
for(Node cur = head; cur != null; cur = cur.next)
{
if(cur.info == name)
{
insertteam1(name);
System.out.print("OK");
}
else
{
System.out.print("member does not exist");
}
}
}
public void insertteam1(String name)
{
Node b = new Node(name);
b.next = null;
count++;
if (head == null)
{
head = b;
return;
}
for(Node cur = head; cur != null; cur = cur.next)
{
if (cur.next == null)
{
cur.next = b;
return;
}
}
}
在下面的代码中,
if(cur.info==name){/}
您正在使用
==
比较字符串信息,这在java中不是比较字符串的正确方法
使用
if(cur.info.equals(name)){/}
或
如果要进行不区分大小写的比较,请使用
if(cur.info.equalsIgnoreCase(name)){/}
。请修复格式。您可以在正在组合的问题下方看到即时预览。在你的问题中也没有具体的jcreator。什么是team1
?你也应该张贴你如何使用它。顺便说一句,使用JDK(LinkedList)中的类名是个坏主意。可能是@user3404896的重复。您是如何确定检查失败的?“它不起作用”是什么意思?您的预期结果与实际结果有何不同?检查器不起作用,因为它只打印“成员不存在”,即使名称在列表上。我怀疑这是问题所在。在大多数情况下,字符串上的==
具有与equals相同的结果。这肯定是一件坏事,但我认为问题出在别处。@NeplatnyUdaj这似乎是我的主要问题,尽管可能还有其他问题。@NeplatnyUdaj在大多数情况下=
的结果与equals
的结果不同。它仅在插入字符串常量的情况下,或在比较字符串的实例时,才具有相同的结果。对于来自外部源的字符串或在运行时构造的字符串,它永远不会有相同的结果。在这种情况下的绝大多数情况下,=
会导致逻辑失败。@NeplatnyUdaj Jason是对的,=
只比较这些引用指向的对象是否相等,而不比较存储在string@NeplatnyUdaj你的JVM工作得很好。==
和equals()
之间的差异是众所周知的,讨论得非常透彻,我认为没有理由在这里进一步讨论。您可以参考或其他任何地方进行解释。