java indexof allways返回-1

时间:2018-08-02 08:29:54

标签: java arraylist indexof

我有这行代码

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 个答案:

答案 0 :(得分:0)

由于<link>test,因此ArrayList<Integer>将创建一个Arrays.asList(test)。由于List<ArrayList<Integer>>仅包含List<ArrayList<Integer>>的实例,因此它永远不能包含ArrayList<Integer>3始终返回-1。

您根本不应该拨打indexOf

asList

答案 1 :(得分:0)

当您使用Arrays.asList(test)时,它返回List中的ArrayLists,而不是Integers。 当然,您在那里找不到元素großezahl(这就是indexOf()返回-1的原因),因为它仅包含test ArrayList作为元素。 如果要从großezahl中删除“ test”元素:

如果großezahlInteger类型,而不是int类型,则应致电test.remove(großezahl);

如果großezahl的类型为int,则可以呼叫test.remove(new Integer(großezahl));test.remove(test.indexOf(großezahl)); 希望对您有帮助!