【问题标题】:Java Vector/List Element RemovalJava 向量/列表元素移除
【发布时间】:2016-12-01 19:16:41
【问题描述】:

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

  1. 如何从向量中删除元素
  2. 如果我从对象中的向量中删除一个元素,然后将我的对象 GSON 转换为 JSON 文件,该元素是否会从 json 文件中消失?或者删除的元素还会在 json 文件中吗?

这是代码:

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);

以上所有方法都有效。这就是问题... 当我正在处理和学习关于上述行为对象添加的新内容时,我有时想删除一些行为条目。

所以我这样做

activities.acts.remove(act);

我没有收到任何错误,但在下一步之后,它们似乎并没有真正被删除。

完成处理后,我对活动对象进行 GSON。 json 文件包含所有行为元素,即使是我删除的那些元素。因此,remove element 真的会删除元素还是只是在某处设置标志?或者,我是不是以错误的方式处理这个问题,我的删除并没有像我预期的那样工作?

【问题讨论】:

  • 您能否删除或注释掉etc 行以便编译此代码?谢谢。
  • 如果元素被成功移除,它应该返回true。您可以检查矢量的大小是否发生变化。

标签: java list vector add element


【解决方案1】:

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);

公共布尔删除(对象o)

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


  1. 如果我从对象中的向量中删除一个元素,然后将我的对象 GSON 转换为 JSON 文件,则该元素会从 json 中消失 文件?或者删除的元素还会在 json 文件中吗?

如果您在从对象中删除矢量元素后将您的对象 GSON 到 JSON 文件中,那么它肯定会从 JSON 文件中消失。就像任何事情一样简单,正如预期的那样。

另外,我建议你通过调试器查看。

【讨论】:

  • 是的,先生,你很有帮助:P
  • 谢谢大家。我发现了问题。我在 remove 语句之前实例化了 act 。我已经重新安排,现在可以正常工作了。
  • 在我调用的修复之前:act = new ActivitySensor();就在删除之前。因此,所有删除所做的只是删除一个全新的行为,而不是我想要删除的行为。因此,我将 remove 语句移到 act = new 语句之前,一切都很好。希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 2016-09-01
  • 2012-11-14
  • 2018-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多