我對Java和StackOverflow非常陌生,所以請不要吝嗇。我真的很感謝一些幫助。先進的謝謝你。getNext()鏈接列表
我覺得這很容易,我已經嘗試了一百萬種不同的方式,但它不工作。
我想在一個文本文件中並將其存儲到鏈接列表中,並試圖訪問此鏈接列表的第三個節點。出於某種原因,我可以訪問第一個節點,然後我可以使用getNext()命令轉到下一個節點,但是當我嘗試使用getNext()轉到第三個節點時,它會繼續返回第二個節點。所以它不會去第三個節點。 我只是想念一些關鍵概念?另外讓我知道你是否需要更多信息。
正被採取的文本文件是: ABCDE AB //這是我想 BC BD CD CE DE行
這裏是我的代碼部分:
public static void main(String[] args) throws IOException{
/**
* Check whether the user types the command correctly
*/
if (args.length != 1)
{
System.out.println("Invalid input");
System.out.println(args.length);
System.exit(1);
}
String filename = args[0];
Scanner input = new Scanner (new File(filename));
LinkedList<String> linkedList= new LinkedList<String>();
while(input.hasNext())
{
linkedList.addToRear(input.nextLine());
}
LinearNode<String> link= linkedList.firstLink;
String temp = " ";
link.getNext();
temp = (String)link.getElement();
String[] numofVerticesArray = temp.split(" ");
int numOfVertices = Integer.parseInt(numofVerticesArray[0]);
int lineNumber = 1;
String [] arrayOfVertices;
LinearNode<String> secondLine = link;
String temp2;
for (int i=0; i <= lineNumber; i++)
{
secondLine = link.getNext();
}
lineNumber = 2;
temp2 = (String)secondLine.getElement();
arrayOfVertices = temp2.split(" ");
int[][] adjMatrix = new int[numOfVertices][numOfVertices];
LinearNode<String> edgeLine = link;
String [] arrayOfEdge;
int rowCount = 0;
int columnCount = 0;
String temp3;
lineNumber = 2;
for (int i=0; i <= lineNumber; i++)
{
edgeLine = link.getNext();
System.out.print((String)edgeLine.getElement());
//When this is printed out, the second node's
//content is printed out, not the third node
}
lineNumber++;
temp3 = (String)edgeLine.getElement();
arrayOfEdge = temp3.split(" ");
總的來說,我會建議複習這些概念,並試圖從頭開始重寫程序(這對你來說是個好習慣)。另外請記住,如果您調用'getNext',那麼請確保將它存儲在某個地方並記住它。在你的代碼中,每當你調用'getNext'時,你總是會忘記'getNext'的值 – Quillion