Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么indexOf没有';你不能按预期工作吗?_Java_List - Fatal编程技术网

Java 为什么indexOf没有';你不能按预期工作吗?

Java 为什么indexOf没有';你不能按预期工作吗?,java,list,Java,List,我有标签,它是字符串的列表,等于[0,1]。但是,下面的行返回-1,而我希望它返回1。你知道什么地方可能错了或遗漏了吗? 定义: maxLabel是一个初始设置为-1的整数。 公共标签清单 发生意外结果时,maxLabel等于1: int maxLabelIndex=labels.indexOf(maxLabel); indexOf返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1。更正式地说,返回最低索引i,以便(o==null?get(i)==null 在你的例子中,

我有
标签
,它是
字符串的列表
,等于
[0,1]
。但是,下面的行返回
-1
,而我希望它返回
1
。你知道什么地方可能错了或遗漏了吗? 定义:
maxLabel是一个初始设置为-1的整数。 公共标签清单

发生意外结果时,
maxLabel
等于1:

int maxLabelIndex=labels.indexOf(maxLabel);

indexOf
返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1。更正式地说,返回最低索引i,以便(o==null?get(i)==null

在你的例子中,元素
“1”
的索引是
1
,这就是为什么你会得到1。但是如果你通过
int-maxLabel=1;
注意maxLabel被声明为type
int
,那么你会得到-1,因为字符串集合不包含Integer类型的对象。


基本上,indexOf方法将
o
作为
Object
类型的参数。每当您传递不同的对象类型时(例如,您声明了
类型
字符串的
列表
,并且您正在检查不同的类型,如
整数、双精度、整数、长型等
),您可以期望得到
-1

我相信您的意思是内容是
[“0”,“1”]
,并且
maxLabel=“1”
(请注意双引号表示这些确实是字符串).
maxLabel
是字符串1吗?请创建一个实际的测试用例。否则我们所能做的就是猜测。你也能给我们看一下maxLabel吗?我们能做的唯一猜测(如下面的答案所述)是maxLabel是数字。给我们看一下实际的代码。我很确定问题是你正在将整数1传递给indexOf方法(因为它接受任何对象类型,而不仅仅是字符串),整数1不等于字符串“1”。是的,你是正确的。我将maxLabel转换为字符串,现在它工作正常。