从向量java中删除条目

从向量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

我有一个向量,我正试图从中移除一个对象。方法如下所述(以及确保移除的检查)。在中,它调用定义向量存储位置的getVector方法和返回向量内对象的findItem。我知道getVector和findItem工作正常,因为我能够向向量添加对象,并查看向量中的对象

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个小时看了它。我想该喝杯咖啡了。