从向量java中删除条目
我有一个向量,我正试图从中移除一个对象。方法如下所述(以及确保移除的检查)。在中,它调用定义向量存储位置的getVector方法和返回向量内对象的findItem。我知道getVector和findItem工作正常,因为我能够向向量添加对象,并查看向量中的对象从向量java中删除条目,java,vector,Java,Vector,我有一个向量,我正试图从中移除一个对象。方法如下所述(以及确保移除的检查)。在中,它调用定义向量存储位置的getVector方法和返回向量内对象的findItem。我知道getVector和findItem工作正常,因为我能够向向量添加对象,并查看向量中的对象 public Message removeMember (Message m) //list is the vector location //item is the object in the vector i am
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+“从文件中删除”)在控制台上验证该项目已被删除,我仍然可以(通过程序)搜索它,当我打开向量位置时,浏览文本文件,我可以看到信息仍然在文件中
提前感谢您的帮助 除非我遗漏了什么,否则您永远不会从文件中删除任何内容。我假设您正在将向量的元素写入代码中其他地方的文件中。从向量本身删除元素不会将其从文件中删除;你必须重写这个文件
如果要将向量保存为序列化对象并尝试在记事本中查看它,则在删除所需元素后仍需要使用新的向量对象重写文件。除非我缺少某些内容,否则您永远不会从文件中删除任何内容。我假设您正在将向量的元素写入代码中其他地方的文件中。从向量本身删除元素不会将其从文件中删除;你必须重写这个文件
如果要将向量保存为序列化对象并尝试在记事本中查看它,则在删除所需元素后仍需要使用新的向量对象重写文件。remove方法删除此向量中第一个出现的指定元素。并非所有事件。因此,如果你有相同对象的另一个实例,它将存在。谢谢Garish,但是我使用此应用程序记录谁在哪个部门、哪个大楼工作。如果我尝试添加name=“John Doe”department=“accounting”building='c',并且记录已经在文件中,它将不会再添加它。因此,如果John Doe被解雇(或辞职),我将从人事文件中删除该记录,并且不应存在重复记录。remove方法将删除此向量中第一个出现的指定元素。并非所有事件。因此,如果你有相同对象的另一个实例,它将存在。谢谢Garish,但是我使用此应用程序记录谁在哪个部门、哪个大楼工作。如果我尝试添加name=“John Doe”department=“accounting”building='c',并且记录已经在文件中,它将不会再添加它。所以,如果John Doe被解雇(或辞职),我会从人事档案中删除记录,不应该有重复的记录。哇,我觉得自己像个白痴。从文件中导入向量,修改向量,然后从不重写它。你的解释完全正确!我在这里发布之前也花了4个小时看了它。我想该喝杯咖啡了。哇,我觉得自己像个白痴。从文件中导入向量,修改向量,然后从不重写它。你的解释完全正确!我在这里发布之前也花了4个小时看了它。我想该喝杯咖啡了。