猿问

java indexof 总是返回-1

我有这行代码

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 也只包含整数。

提前致谢。


喵喵时光机
浏览 880回答 2
2回答

GCT1015

当您使用Arrays.asList(test)它时,它会返回一个Listof ArrayLists,而不是Integers。当然,你在großezahl那里找不到元素(这就是indexOf()返回 -1的原因),因为它只包含你test ArrayList的元素。如果您想großezahl从test以下位置删除“ ”元素:如果großezahl是Integer类型而不是int你应该调用test.remove(großezahl);.如果großezahl是类型int,你可以打电话test.remove(new Integer(großezahl));或者test.remove(test.indexOf(großezahl)); 我希望它会帮助你!

一只甜甜圈

既然test是ArrayList<Integer>,Arrays.asList(test)就会创建一个List<ArrayList<Integer>>。由于 a&nbsp;List<ArrayList<Integer>>, 只包含 的实例ArrayList<Integer>,它永远不能包含3。indexOf总是返回-1。你根本不应该打电话asList:test.remove(test.indexOf(grossezahl));
随时随地看视频慕课网APP

相关分类

Java
我要回答