0

好的,我有一个链接列表(不是集合),我创建了一个新方法来在我的链接列表中查找对象。所以是这样的:

 public Object find(Linked obj) {

        Linked newObj = firstLink;

        while(newObj != null) {

            if(newObj == obj) {
                return obj;
            }
            else {

                newObj = newObj.next;
            }
        }

顺便说一句,我有2 个课程LinkedLinkedlist. 在第一个中,我参考了下一个节点和显示功能。主要操作在 Linkedlist 中,我有所有方法,如插入、显示和firstLink引用(我的列表中最后插入的节点)(我的 find() 方法也在这个类中)。所以在我的主要功能中,我正在这样做:

Linkedlist obj = new Linkedlist();
obj.insert("Auto");

Linkedlist obj2 = new Linkedlist();
obj2.insert("Moto");

以及如何调用我的方法find()来检查我Linkedlist是否有(例如)obj2

4

2 回答 2

1

这样想:

你有 Linked 类(这是一个链表节点,每个节点都应该有 next 指针和节点内的元素)。所以这个类应该有构造函数、setter 和 getter 方法。

另一方面,Linkedlist 类是您管理 Linked 对象(即管理链表节点)的主要类。在此类中,您应该引用根节点(您插入的第一个节点)。所以在你的程序中,你应该只有一个/多个 Linked 对象和 Linkedlist 作为你的主类。

Linked root = new Linked("Auto",null); //here Linked constructor takes 2 parameters, the element and the next pointer.
//Since you only inserted one element so far, the next element should be null.

//Insert another element
insertAtEnd("Moto");

public void insertAtEnd(String element){
    Linked curr = root;
    while(curr.next != null) curr = curr.next;
    curr.setNext(new Linked(element,null);
}

public Linked findElement(String element){
    Linked curr = root;
    while(curr!=null){
         if(curr.getElement().equals(element)) return curr;
         else curr = curr.next;
    }
    return null; //element not found
}
于 2013-11-04T07:22:56.083 回答
0
  • 要将 LinkedList 中的单个对象与另一个对象进行比较:

    实现equals()方法Linked。在此方法中,检查两个对象(迭代中的当前对象和要查找的对象)中包含的字符串是否相同。为此,您应该使用该String.equals(String other)方法

  • 要比较两个 LinkedList,请编写另一个equals()方法。这次为LinkedList。在这种方法中,您应该比较例如两个列表中的元素数量。如果列表包含相同数量的元素,您可以使用之前定义Linked.equals()的逐项比较列表。

于 2013-11-04T07:12:00.033 回答