gpt4 book ai didi

java - 在 LinkedList 中按索引删除

转载 作者:行者123 更新时间:2023-11-29 06:24:28 25 4
gpt4 key购买 nike

这不是我在现实生活中会做的事情,而是说:

LinkedList = a,b,c,d,e 并得到它们对应的索引。

比如说,我想删除 b (index=1) 和 d (index=3)(即围绕 c (index=j=2) 的值)

现在,我做(效果很好):

When j=2
LS.remove(j + 1); ----> j=3 (d removed)
LS.remove(j - 1); ----> j=1 (b removed)

并且 b 和 d 被删除。

但如果,我这样做(不起作用):

When j=2
LS.remove(j - 1); ----> j=1 (b removed)
LS.remove(j); ----> j=2 (d is not removed) (used j because due to above removal, LL has adjusted it self)

即当我先移动“c”之前的值时,“d”不会被删除,LL 保持原样。我想,我也在做同样的事情。

我是不是错过了什么?

更新:

因此,当我将签名 public void operation(String operator, Integer j) 更改为 public void operation(String operator, int j) 时,它起作用了。

最佳答案

如果 j 是大的 Integer 类型,那么将调用 LinkedList.remove(Object) 而不是 LinkedList.remove (整数)。而这并不是您真正想要的。

我看不出有任何理由在你的第二个例子中使用大整数作为 j 的类型,你应该使用原始 int

请查看Why aren't Java Collections remove methods generic?为什么 LinkedList 仍然有 remove(Object) 签名。

关于java - 在 LinkedList 中按索引删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5137763/

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