gpt4 book ai didi

java - a[2] = a[a.length] 删除数组 a 中的 2 个

转载 作者:行者123 更新时间:2023-12-01 13:21:49 25 4
gpt4 key购买 nike

a[2] = a[a.length-1] 

当我在Java中使用上面的代码时,它删除了数组a的索引2。从 inteliJ 调试器我看不到它了。它从a[1]到a[3],然后是a[4]等等

a是一个泛型数组。如果我编码

a[2] = a[7] 

其中 7 是 a.length-1,然后它会按预期复制值

最佳答案

如果 a 是对象数组,那么它可能会使旧的 a[2] 无效,但它仍然指向一个对象,因此不会被删除。您需要分配给 null 才能真正删除它,即使这不能保证快速删除,您也需要触发垃圾收集。即使这样也不能保证您的数据确实从内存跟踪中删除。其他一些应用程序需要使用该区域进行 calloc/new 并清除该区域(可能不适用于服务器)。

InteliJ 调试器必须一直在跟踪常量索引。当你给一个变量索引并使旧的索引无效时,它失败了。正如 C++ 的自动矢量化在同一件事上失败一样。有时调试器也会有错误(有时这种情况并不罕见)

关于java - a[2] = a[a.length] 删除数组 a 中的 2 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com