尽管列表中存在对象,但在Long类型的ArrayList上使用indexOf会返回-1

use*_*462 0 java android arraylist

我正在尝试检索存储在ArrayList中的某个Long值的索引.但这是发生了什么:

在此输入图像描述

dex被赋值为-1 - 我理解这意味着该对象在该arraylist中不存在.但事实上,确实如此.这就是我所知道的:

在此输入图像描述

因此应该指定的值dex为0.

我搞砸了哪里?

编辑:nums也是Long类型的arraylist.

Jac*_*ack 5

它做什么?nums.get(0)java.lang.String,在你的屏幕截图指出的,虽然longList.get(0)是一个java.lang.Long.

事实上,它们不是同一个对象nums.get(0).equals(longList.get(0)) == false.您必须将其转换String为a Long(Long.parseLong例如),然后在其中搜索结果值longList

  • 然后,在代码的某处,通过反射或显式强制转换或原始类型来破坏类型安全性.否则`nums.add("1008")`会引发编译错误. (2认同)