采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在remove方法中,首先执行了size–;再执行data[size] = null;可是除了removeLast这种情况,size–后,data[size]和data[size-1]应该都是执行同一个对象,所以对于除了removeLast这种情况外应该都是无用的吧?
可能我没有特别理解你的问题。。。
对于所有的remove,执行以后,都会将原来的size个有效元素变成size-1个有效元素。同时,我们的删除过程,会将这size-1个有效元素相邻的码好。所以,原先的最后一个位置都失效了。我们手动将这个位置的引用置为空。
不过这句话不写也可以。可以参考这里:https://coding.imooc.com/learn/questiondetail/67921.html
继续加油!:)
非常感谢!老师我的理解是,我们自定义的remove方法执行后size-1.此时除了removelast这种情况外data[size-1]和data[size]指向同一个对象,这句话生效的机会不多。
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.4k 16
1.4k 17
1.4k 14
1.3k 14