ユーザー入力を受け取り、印刷と削除の目的でカウンターをインクリメントするコードがあります。リンクされたリストと現在の位置の間のカウントの違いを確認するために、いくつかの印刷行を追加しました。これが得られたものです。
Enter a command from the list above (q to quit):
2
Deleted: e e 5 $5.0
Current record is now first record.
4
5
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4
at java.util.LinkedList.entry(LinkedList.java:365)
at java.util.LinkedList.get(LinkedList.java:315)
at bankdata.command(bankdata.java:158)
at bankdata.main(bankdata.java:314)
Java Result: 1
BUILD SUCCESSFUL (total time: 18 seconds)
コマンド 2、remove current node コマンドを入力します。現在のノードは、技術的には 0 ~ 4 を意味するサイズ 5 のリンク リストの最後のノードです。
このコードを実行するとどうなりますか:
//currentAccount is a static int that was created at the start of my code.
//It got it's size because the int is saved every time a new node is made.
//The most recent size correlates with the last position in the linked list.
int altefucseyegiv = accountRecords.size();
System.out.println("Deleted: " + accountRecords.get(currentAccount)
+ "\n Current record is now first record.");
System.out.println(currentAccount);
System.out.println(accountRecords.size());
accountRecords.remove(currentAccount);
System.out.println("Deleted: " + accountRecords.get(currentAccount)
+ "\n Current record is now first record.");
if(altefucseyegiv == 1)
{
currentAccount = -1;
}
else
{
currentAccount = 0;
}
records.currentAcc(currentAccount, accountRecords);
return;
このエラーが発生します???
よくわかりません!.get(4)th を削除しているため、つまり 5 番目の要素を削除しているだけであり、愛を意味するわけではありません。誰かが説明して、これを修正するのを手伝ってもらえますか?