これは list 関数です。ベクトル dataList に追加される前に newEntry の内容を出力していることがわかります。
public static Vector<entry> list()
{
entry newEntry = new entry();
Vector<entry> dataList = new Vector<entry>();
String[] splitLine;
String currentLine;
String formattedString = "";
BufferedReader in;
try
{
in = new BufferedReader(new FileReader(new File("data.txt")));
while ((currentLine = in.readLine()) != null) {
newEntry = new entry();
splitLine = currentLine.split(" ");
newEntry.record = Integer.parseInt(splitLine[0]);
newEntry.fName = splitLine[1];
newEntry.lName = splitLine[2];
newEntry.phoneNumber = splitLine[3];
dataList.add(newEntry);
}
}
catch (IOException ex)
{
System.out.println(ex);
}
for (int i = 0; i < dataList.size(); i++)
{
System.out.println(dataList.elementAt(i).record + dataList.elementAt(i).fName + dataList.elementAt(i).lName + dataList.elementAt(i).phoneNumber);
}
return dataList;
}
これは私が問題を抱えている部分です.list()が返されたもの(上記)を取得し、それを新しいベクトルに形成して出力します. ただし、何らかの理由で最後の値のみを出力しています...
if ((params[0].toLowerCase()).equals("list"))
{
Vector<entry> printList = new Vector<entry>(list());
for (int i = 0; i < printList.size(); i++)
{
System.out.println(printList.elementAt(i).record + printList.elementAt(i).fName + printList.elementAt(i).lName + printList.elementAt(i).phoneNumber);
}
}
これは、リスト関数の dataList に 3 (以下に示す最初の 3) が追加されたときに得られる出力です。
1000 ジョン・カーター 1731371313
1001 エイブ・リンカーン 9173913143
1002 ウィリアム・テル 794174141
1002 ウィリアム・テル 794174141
1002 ウィリアム・テル 794174141
1002 ウィリアム・テル 794174141
誰が何が間違っているのか知っていますか?