Java 链表清单程序的findItem方法

Java 链表清单程序的findItem方法,java,linked-list,inventory,Java,Linked List,Inventory,在上一次任务中,我使用数组编制了一个清单程序。我们的最后一项任务是将数组更改为链表。我们不是要使用LinkedList类,而是要创建自己的类。我让我的程序运行起来了,但我的导师说这很好,但可能会更好。主要是我的InventoryLL类中的findItem方法。我的问题是:有没有更好的方法在我的链接列表中查找项目?如有任何建议,我将不胜感激。到目前为止,我在每项作业中都取得了100%的成绩,只是努力完成得更好,并尽可能多地学习:) 简单的回答是,如果不将其放入一个(例如)跳过列表(skip lis

在上一次任务中,我使用数组编制了一个清单程序。我们的最后一项任务是将数组更改为链表。我们不是要使用LinkedList类,而是要创建自己的类。我让我的程序运行起来了,但我的导师说这很好,但可能会更好。主要是我的InventoryLL类中的findItem方法。我的问题是:有没有更好的方法在我的链接列表中查找项目?如有任何建议,我将不胜感激。到目前为止,我在每项作业中都取得了100%的成绩,只是努力完成得更好,并尽可能多地学习:)


简单的回答是,如果不将其放入一个(例如)跳过列表(skip list),这是一个有序的链表,其中包含一种“快速路径”,则无法提高效率


虽然它可能有点超出范围。

好吧,在你的代码中,你假设“发现”最终会实现;你应该知道这不可能发生。此外,您可以更改循环以避免使用“break”,这不是很聪明,尽管它没有错

您也可以通过参数传递inputID的值,因此对函数的调用将是
findItem(0)
(或
findItem(7)
或您喜欢的任何内容)


您的列表是否已排序,可能是您可以跳过一些节点并节省一些宝贵的时间。不,它未排序。我的指导老师说我们可以,但不必分类。谢谢,我会查出来的。虽然我可能不确定我们是否可以使用跳过列表,因为我们在课堂上没有复习过。非常感谢!这是一个很大的帮助,但唯一的事情是我仍然需要返回当前如果没有找到任何东西,它将只是返回为空。如果调用findItem的任何方法获得空值,则它将显示“not found”消息。我的教练告诉我不要使用休息,谢谢。但她也提到我应该使用(!found)和(current!=null)作为复合条件。所以我又有点迷路了。你知道我该怎么做吗??提前谢谢!
public ItemNode findItem() 
{
    boolean found = false;
    int inputID = 0;
    ItemNode current = head;
        try{
            System.out.print("\nGreetings, please enter the ID number for item:\n");
            inputID = scannerObject.nextInt();
            scannerObject.nextLine();
        while (found != true){
         if (current.getID() == inputID){
             found = true;
             break;
            }
         current = current.getNext();
        }      
    }catch(Exception e)
            {
            System.out.println("\nERROR!");
            }
    return current;
}      
    public ItemNode findItem(inputID){
    boolean found = false;
for (itemNode current = head; !found; current = current.getNext()){
  if (current.getID() == inputID){
             found = true;
  }
}
if (found) {
return current;
}
else{
   System.out.println("not found"); //or some other code
}