在链表末尾插入项目时出现问题Java无法工作
我试图在链接列表的末尾添加一个项目,但出现以下错误:在链表末尾插入项目时出现问题Java无法工作,java,linked-list,Java,Linked List,我试图在链接列表的末尾添加一个项目,但出现以下错误: Exception in thread "main" java.lang.NullPointerException at List.insertAtEnd(List.java:105) at MainProgram.stringOperation(MainProgram.java:178) at MainProgram.main(MainProgram.java:97) class Link
Exception in thread "main" java.lang.NullPointerException
at List.insertAtEnd(List.java:105)
at MainProgram.stringOperation(MainProgram.java:178)
at MainProgram.main(MainProgram.java:97)
class Link
{
public Object data;
public Link next;
}
// List Class Method:insertAtEnd: insert a given item at the end of the list -
public void insertAtEnd(Object item)
{
//Create a New Link
Link newLink = new Link();
newLink.data = item;
newLink.next = null;
//Set _tail to point to null
_tail.next = newLink;
_tail = newLink;
//Add to the Counter - For the Number of Elements in the Linked List
_numOfElements++;
}
主程序-方法之一
//StringOperations
public static void stringOperation(int option)
{
Scanner keyboard = new Scanner(System.in);
//Variables needed from User
int index, startPosition, endPosition;
String data;
//Instances needed to Perform Operations (1-9)
Link link;
List listOfIndexes;
//Switch Statement to Perform Operations
switch(option)
{
//Operation 3: insertAtEnd
case 3:
System.out.print("Please enter a String: ");
data = keyboard.nextLine();
stringList.insertAtEnd(data);
System.out.println("Completed Operation 3 for the String List." + "\n");
break;
}
}
我想添加更多的代码,但为了让大家更好地理解,我一直在StackOverflow上遇到一个错误。我需要确保每当我向链表中添加一个项目时,我的尾巴都在更新,以便有一个更高效的程序
更新版本:
private Link _head;
private Link _tail;
private int _numOfElements = 0;
/*Public Methods */
//(1) initialize: create an empty list (no items) - DONE!
public List()
{
_head = null;
_tail = null;
}
默认情况下,列表按插入项目的方式排序:
java.util.List<String> list = new LinkedList<>();
list.add("First item");
list.add("Second item");
java.util.List=新建LinkedList();
列表。添加(“第一项”);
列表。添加(“第二项”);
在指定值之前,不能引用tail.next
只需在InsertAttend函数中使用此选项:
if(_tail != null){
_tail.next = newLink;
}
_tail = newLink;
哪一行是105,什么是尾巴?我想尾巴是空的。请显示定义和使用代码的位置。专用链接\u head;专用链路;私有int_numOfElements=0/*公共方法*//(1)初始化:创建空列表(无项)-完成!public List(){u head=null;{u tail=null;}Yup\u tail为null。在为_tail赋值之前,不能使用_tail.next。是否为以下内容://创建新链接newLink=newLink();newLink.data=项目;newLink.next=null//将_tail设置为指向null _tail=newLink_tail.next=newLink;法赞,谢谢你的帮助!我照你的建议做了;但是,我的toString方法没有打印出我输入的字符串,我认为它现在可以工作了。我在第一个索引中添加了一个项,然后使用insertEnd方法,它就可以工作了。每当我首先使用insertEnd方法而不添加任何项时,我不会得到任何错误;但是,我的toString不显示我的项目。谢谢你,法齐安!