Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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_Arrays_Casting_Boolean_Indexof - Fatal编程技术网

为什么在java中,对于转换为列表的数组,indexof会失败?

为什么在java中,对于转换为列表的数组,indexof会失败?,java,arrays,casting,boolean,indexof,Java,Arrays,Casting,Boolean,Indexof,假设我有一个布尔数组,我想在其中找到第一个“true”条目。 由于Java array没有indexOf方法,因此我考虑这样做: boolean[] bArr = new boolean[]{true, true, true, true, true}; int index = Arrays.asList(bArr).indexOf(true); 现在为什么这会导致索引“为-1”(即“未找到真值”) 可编译:因为数组。asList(bArr)正在创建列表而不是列表数组。asList不会将您的布尔

假设我有一个布尔数组,我想在其中找到第一个“true”条目。 由于Java array没有indexOf方法,因此我考虑这样做:

boolean[] bArr = new boolean[]{true, true, true, true, true};
int index = Arrays.asList(bArr).indexOf(true);
现在为什么这会导致索引“为-1”(即“未找到真值”)


可编译:

因为
数组。asList(bArr)
正在创建
列表
而不是
列表
<代码>数组。asList不会将您的
布尔[]
数组装箱为
布尔[]
数组(注意区别)

因此,在索引0处只有一个带有单个布尔数组的列表

如果使用了
Boolean[]bArr=new Boolean[]{true,true,true,true}
索引
的值为0

因此,克服这一问题的方法是:

  • 创建一个空列表,在数组中循环并将每个项添加到列表中(每个布尔值将被装箱为布尔值)
  • 编写一个简单的实用程序方法,将
    布尔[]
    数组作为参数和要查找的值