java - 通过搜索引用java删除节点

标签 java reference linked-list

所以我写了一个 linkList 来保存学生引用和下一个引用。我对插入没有任何问题。另一方面,我需要有关删除和查找该项目的帮助。所以基本上我使用 find 方法来查找学生对字符串的引用。然后使用delete方法删除与该引用对应的节点。

   public void deleteStudentNode(StudentNode delete)
   { 
          StudentNode it = new StudentNode();
          delete = shead;
          it = shead; 
          //StudentNode b = new StudentNode();

          while(it.getSptr() != findStudentByName(""))        
          {
             delete = it;
             it = it.getSptr();
          }
          delete.setSptr(null);         
          setShead(delete);
          //d.setStudent(null);                
   }

   public StudentNode findStudentByName (String findName)
   {
            StudentNode find = shead;

      while(find.getStudent().getName() != findName)
      {
         if(find.getSptr() == null)

            return null;

         else

            find = find.getSptr();      
      }
                  return find; 
   }

最佳答案

我建议为您的单链表实现Iterable接口(interface)。之后您需要做的就是

public void deleteByName(StudentList studentList, String nameToDelete) {
    Iterator iterator = studentList.iterator();
    while (iterator.hasNext()) {
        if(iterator.next().getName().equals(nameToDelete)) {
            iterator.remove();
        }
    }
}

提示,要迭代单链表,您需要 2 个指针:当前元素和前一个元素。

关于java - 通过搜索引用java删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42930267/

相关文章:

mysql - 引用列是否应该限制在单个表中?

c# - 从 asp.net 上的另一个文件夹引用 dotnetnuke.dll

java - 使用请求调度程序 JSP 发送 404

java - 如何使用这两个 ArrayAdapter 构造函数

java - Printwriter 和 OutputStream 有什么区别

C++、类、Const 和奇怪的语法

Java排序链表打印两次

c - 单链表中current->link->data和current->data有什么区别?

C:如何释放链表中的节点?

java.lang.OutOfMemoryError : PermGen space: java reflection 错误