Java矢量/列表元素删除

时间:2016-12-01 19:16:41

标签: java list vector add element

您好我有2个关于Java Vector元素删除的快速问题。

  1. 如何从矢量中删除元素
  2. 如果我从对象中的向量中删除一个元素,然后我将GSON我的对象转换为JSON文件,那么该元素将不会出现在json文件中?或者删除的元素是否仍在json文件中?
  3. 这是代码:

    public class Activities {
        private String instanceID;
        private String tripID;
        public List<ActivitySensor> acts;
        private String gout;
    
        public Activities() {
            acts = new Vector<ActivitySensor>(3, 3);
        }
        // etc
        // etc
    }
    
    public class ActivitySensor {
        private String name;
        private int typeID;
        private int confidence;
        private Date beginTime;
        // etc
        // etc
    }
    

    我实例化如下:

    ActivitySensor act;
    Activities activities = new Activities();
    act = new ActivitySensor();
    

    然后,当我想要将一组新元素添加到ActivitySensor时,我就这样做了......

    activities.acts.add(act);
    

    以上所有方法都有效。这是问题......     当我正在处理并学习有关上述act对象的新内容时,我有时想要删除一些act条目。

    所以我这样做

    activities.acts.remove(act);
    

    我没有错误,但在下一步之后,它们似乎并未真正删除。

    当我完成处理时,我是GSON的活动对象。 json文件包含所有act元素,甚至包括我删除的元素。因此,删除元素是否真的删除元素或只是在某处设置标志?或者,我是以错误的方式接近这一点而且我的移除并没有像我期望的那样真正起作用?

1 个答案:

答案 0 :(得分:2)

  

1 - 如何从矢量中删除元素

在此代码中按照您的方式完成,即通过调用public boolean remove(Object o)public E remove(int index)方法。

activities.acts.remove(act);应该在activities.acts.add(act);之后和将对象转换为JSON之前的某处工作正常。我怀疑你称之为的那一步!删除元素后,你真的将它转换为JSON吗?

另外,尝试将remove语句的输出存储到布尔变量中。

boolean isRemoved = activities.acts.remove(act);
  

public boolean remove(Object o)

     

删除此Vector中第一次出现的指定元素。   如果Vector不包含该元素,则不会更改。更多   正式地,删除具有最低索引i的元素   (o == null?get(i)== null:o.equals(get(i)))(如果这样的元素   存在)。

  
      
  1. 如果我从我的对象中的向量中删除一个元素然后我将GSON我的对象转换为JSON文件,那么json中将缺少该元素   文件?或者删除的元素是否仍在json文件中?
  2.   

如果从对象中删除vector元素后将对象GSON转换为JSON文件,它肯定会在JSON文件中不存在。就像预期一样简单。

另外,我建议您查看调试器。