当前位置: 首页 > 面试题库 >

Arraylist.clear清除所有数组列表?

慕永年
2023-03-14
问题内容

我有2个单独的数组列表。一个叫做spawnList,另一个叫做FoundList

我已经运行了代码,它生成了一个实体并将所述实体ID添加到spawnList,所以现在spawnList.size()等于1

下一步运行该操作将清除foundList搜索实体,并将发现的内容与spawnList进行比较,所有匹配项都将添加到foundList中。

我遇到的怪异问题是当foundList被清除时,spawnList也被清除了

我缩小了范围,并进行了一些打印测试

        System.out.println("spawnList = " + this.spawnList.size());
        this.foundList.clear();
        System.out.println("spawnList = " + this.spawnList.size());

这将打印出来

spawnList = 1
spawnList = 0

为什么清除foundList时会清除spawnList?


问题答案:

你写过代码吗

spawnList = foundList还是foundList = spawnList

如果是这样,由于an
ArrayList是一个对象,您实际上并没有在复制这些列表,因此使它们引用了同一对象。(即,您对一个人所做的一切都会对另一个人有所影响)。

如果您想减轻这种情况,而不是直接将列表设置为彼此相等,则可以执行以下操作

foundList = new ArrayList<>(spawnList)

因为这将使两个数组成为独立的对象。

取决于数组中对象的类型,这仍然可能是一个问题,因为它们仍然是每个对象的相同实例。



 类似资料:
  • 问题内容: 有没有办法清除给定窗口中的所有超时?我认为超时存储在对象中的某个位置,但无法确认。 任何跨浏览器解决方案都是受欢迎的。 问题答案: 它们不在window对象中,但是具有id,这些id是连续的整数。 因此,您可以像这样清除所有超时:

  • void clear_all_cache(int expire time) This clears the entire template cache. As an optional parameter, you can supply a minimum age in seconds the cache files must be before they will get cleared. 清除所

  • void clear_all_assign() This clears the values of all assigned variables. 清除所有已赋值到模板中的值。 Example 13-5. clear_all_assign 例子 13-5. 清除所有赋值 // clear all assigned variables $smarty->clear_all_assign();

  • 问题内容: 如何使用JavaScript删除当前域的所有cookie? 问题答案: 请注意,此代码有两个限制: 它不会删除设置了标志的cookie ,因为该标志会禁用Javascript对cookie的访问。 它不会删除已设置值的cookie 。(尽管这些cookie会出现在中,但您必须在未指定与它相同的值的情况下将其删除。)

  • 问题内容: 我基本上是在寻找组合的 python版本 给定一个列表列表,我需要一个新列表,该列表给出列表之间所有可能的项目组合。 列表的数量是未知的,因此我需要一些适用于所有情况的列表。奖励积分,尽享优雅! 问题答案: 你需要:

  • 问题内容: 我有一个数组: 我想从中删除所有零,以便返回(保持相同的顺序): 有什么比以下方法更简单的方法来删除所有零? 我无法在Arrays类中找到任何方法,并且Google / SO搜索没有给我任何好的答案。 问题答案: 这是在少数情况下,用代码显示比用普通英语解释更容易的情况之一: