为了账号安全,请及时绑定邮箱和手机立即绑定

java indexof 总是返回-1

java indexof 总是返回-1

喵喵时光机 2021-06-21 12:14:39
我有这行代码test.remove(Arrays.asList(test).indexOf(großezahl))实际上,我想删除名为 ''test'' 的 ArrayList 中出现的 ''großezahl''。问题是,每次我尝试这段代码时,我都遇到了同样的问题Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1也许有更好的方法来解决这个问题,但这真的让我很烦恼。如果有人想尝试我的例子,''test'' 是 [2, 3, 4] 和 ''großezahl'' 是 3。ArrayList 也只包含整数。提前致谢。
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

当您使用Arrays.asList(test)它时,它会返回一个Listof ArrayLists,而不是Integers。当然,你在großezahl那里找不到元素(这就是indexOf()返回 -1的原因),因为它只包含你test ArrayList的元素。如果您想großezahltest以下位置删除“ ”元素:

如果großezahlInteger类型而不是int你应该调用test.remove(großezahl);.

如果großezahl是类型int,你可以打电话test.remove(new Integer(großezahl));或者test.remove(test.indexOf(großezahl)); 我希望它会帮助你!


查看完整回答
反对 回复 2021-06-23
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

既然testArrayList<Integer>Arrays.asList(test)就会创建一个List<ArrayList<Integer>>。由于 a List<ArrayList<Integer>>, 只包含 的实例ArrayList<Integer>,它永远不能包含3indexOf总是返回-1。

你根本不应该打电话asList

test.remove(test.indexOf(grossezahl));


查看完整回答
反对 回复 2021-06-23
  • 2 回答
  • 0 关注
  • 879 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信