Java 链表find()方法。如何

Java 链表find()方法。如何,java,Java,好的,我有一个链表(不是集合),我创建了一个新方法来查找链表中的对象。比如说: public Object find(Linked obj) { Linked newObj = firstLink; while(newObj != null) { if(newObj == obj) { return obj; } else {

好的,我有一个链表(不是集合),我创建了一个新方法来查找链表中的对象。比如说:

 public Object find(Linked obj) {

        Linked newObj = firstLink;

        while(newObj != null) {

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

                newObj = newObj.next;
            }
        }
顺便说一句,我有两个类:
Linked
Linkedlist
。在第一个函数中,我引用了下一个节点和显示函数。主要操作是在Linkedlist中,我有所有方法,如insert、display和
firstLink
引用(我列表中最后插入的节点)(我的find()方法也在这个类中)。因此,在我的主要职能中,我是这样做的:

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

Linkedlist obj2 = new Linkedlist();
obj2.insert("Moto");
我如何调用我的方法
find()
来检查我的
Linkedlist
是否有(例如)
obj2

  • 要将LinkedList中的单个对象与另一个对象进行比较,请执行以下操作:

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

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

    • 这样想:

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

      另一方面,Linkedlist类是管理链接对象(即管理链接列表节点)的主类。在这个类中,应该有对根节点(插入的第一个节点)的引用。因此,在程序中,应该只有一个/多个链接对象和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
      }
      

      使用newObj.equals(obj)(在链接类中重写它之后)并注意obj2是一个Linkedlist,而不是一个要查找的对象。是的,在我发布帖子5分钟后,我想到了equals()。顺便说一下,谢谢你。它起作用了!我接受你的代码if语句。这是一种比较它的简单方法,因为如果只有一个变量,那么比较两个对象是没有意义的。所以用你的方法,我不需要重写我的equals()和hashCode()。谢谢@没问题!很高兴它有所帮助:)