我有一个 vector ,我试图从中删除一个对象。该方法如下所述(以及确保其被删除的检查)。其中调用定义 vector 存储位置的 getVector 方法,以及返回 Vector 内对象的 findItem 方法。我知道 getVector 和 findItem 可以正常工作,因为我能够将对象添加到 vector 中,并查看 vector 中的对象。
public Message removeMember (Message m)
//list is the vector location
//item is the object in the vector i am looking to remove
{
list = getVector(m);
item = findItem(list, m);
if (item != null) // if item exists in the vector (code enters this statement)
{
System.out.println("removing " + item.name + " from file");
list.remove(item); // remove the item from the vector
// search for item to insure it is removed
item = findItem(list, m);
if (item == null) // if item has been removed
{
System.out.println(m.name + " removed from file.");
m.response = m.name + " removed from file.";
}
else //if the item has not been removed
{
System.out.println("Error removing member from file.");
m.response = "Error removing member from file.";
}
}
else // item does not exist in vector at all
{
m.response = m.name + " was previously removed or never existed.";
}
return m;
}
我遇到的问题是,即使我进行检查以确保该项目已被删除,并且程序进入该检查并且 System.out.println(m.name + "从文件中删除。") 验证在控制台上,该条目已被删除,我仍然可以搜索它(通过程序),当我打开 vector 位置,浏览文本文件时,我可以看到信息仍然在文件中。
预先感谢您的帮助!
最佳答案
除非我丢失了某些东西,否则您实际上永远不会从文件中删除任何内容。我假设您正在将 Vector 的元素写入代码中其他位置的文件中。从 Vector 本身删除元素不会将其从文件中删除;您必须重写该文件。
如果您将 Vector 保存为序列化对象并尝试在记事本中查看它,则在删除所需元素后仍然需要使用新的 Vector 对象重写文件。
关于java - 从 vector java 中删除一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970936/