gpt4 book ai didi

java - Vector.remove() for 循环

转载 作者:搜寻专家 更新时间:2023-11-01 04:03:02 25 4
gpt4 key购买 nike

我正在编写一个游戏并且几乎完成了保存文件系统。我有两个 vector (一个保存游戏的名称,一个保存sessionID)。

启动时,程序将从文件中读取数据并将该信息添加到 vector 中。然后调用另一个方法来检查 Vector 中显示的文件是否确实存在。否则,它们将从 Vectors 中删除。最后,Vectors 被打印并重写到文件中。

我遇到的问题是 for 循环没有检查 Vector 中的每个项目,因为当项目被移除时 Vector.size() 正在减少。是否有更好的方法来形成 for 循环,或者是否有我可以使用的解决方法?

private static void slistCleanup() throws IOException {

private static Vector<String> saveNames = new Vector<String>();
private static Vector<Integer> sessionIDs = new Vector<Integer>();

Scanner slistReader = new Scanner(new FileReader(sessionList));
File tempSave;
String path;
int run = 1;
String tempName = " ";
int tempID = 0;

for (int x = 0; x < saveNames.size(); x++) {

path = currentDir + "\\saves\\" + sessionIDs.elementAt(x) + ".sav";
tempSave = new File(path);

System.out.println("-----------------------"); //debug
System.out.println("current pass: " + run);
System.out.println("tempSave Path: " + tempSave.getAbsolutePath()); //debug
System.out.println("tempSave exists: " + tempSave.exists()); //debug
System.out.println("-----------------------"); //debug
run++; //debug

if (!tempSave.exists()) {

saveNames.remove(x);
sessionIDs.remove(x);
}
}

for (int x = 0; x < saveNames.size(); x++) {

System.out.println(saveNames.elementAt(x));
System.out.println(sessionIDs.elementAt(x));
}

slistReader.close();
}

如果您需要更多代码,请告诉我。

最佳答案

向后循环:

for (int x = saveNames.size()-1; x >= 0; x--)

关于java - Vector.remove() for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16303269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com