java - 搜索 Java 链表

标签 java search linked-list

我正在尝试搜索使用名为 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/

相关文章:

java - 将 xml 属性解析为 ant-build.xml 文件

java - 如何在字符串中搜索关键字

c - 在 C 中实现哈希表

Java 资源 - 使用目录树中远离的文件

JAVA jdbc blob?

java - 带有搜索实现的 CursorTreeAdapter

algorithm - 哪种在链表中存储项目的方法更快?

javascript - 添加两个链表并在javascript中的新链表讨论中输出结果

java - 处理线程池中不同优先级的任务

python - 查找最接近未完全排序的列表中的值的项目的索引