gpt4 book ai didi

java - 搜索 Java 链表

转载 作者:行者123 更新时间:2023-12-01 18:58:52 24 4
gpt4 key购买 nike

我正在尝试搜索使用名为 Name 的自定义对象的 Java LinkedList。我需要搜索名字(名称中的compareTo方法已经比较姓氏,因为我需要使用它按姓氏排序)。 Name 有一个名为 getFirstName() 的观察者方法。

我没有成功地从我的 LinkedList 访问名字。这就是我想做的,但这(显然)行不通。

if (iterator.next().getFirstName().equals(inputSearch))

有人能指出我正确的方向吗?

这是我当前正在尝试编写的完整方法:

// Creating a method to search for a first name
static void searchName()
{
Scanner inData = new Scanner(System.in);

// Label to request input from user
System.out.println("Enter the first name that you would like to search for:");

// Setting variable to capture input
String inputSearch = inData.next();

// Creating an iterator to search through the list
iterator = list.iterator();

// While loop to search each entry
while (iterator.hasNext())
{
if (iterator.next().getFirstName().equals(inputSearch))
{
System.out.println("MATCH FOUND: " + iterator.next());
}
}
}

最佳答案

您调用了 iterator.next() 两次。第二次将超越您想要的项目。相反,保存第一次调用 iterator.next() 的返回值并使用它。

  while (iterator.hasNext())
{
Name item = (Name) iterator.next();

if (item.getFirstName().equals(inputSearch))
{
System.out.println("MATCH FOUND: " + item);
}
}

或者,更惯用的说法

  for (Name item : list)
{
if (item.getFirstName().equals...
}

关于java - 搜索 Java 链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com