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

Java 为什么indexOf找不到对象?

Java 为什么indexOf找不到对象?,java,indexof,Java,Indexof,我创建了一个整数列表,并试图返回特定值的索引。 数组是3,8,2,5,1,4,7,6,我想返回indexOf(3),它应该是0 在导入Java.util.*之后,我在Eclipse Java剪贴簿中尝试了以下内容: int[] A = {3,8,2,5,1,4,7,9}; Arrays.asList(A).indexOf(3) 我也尝试过: int[] A = {3,8,2,5,1,4,7,6}; ArrayList<Integer> l = new ArrayList(Array

我创建了一个整数列表,并试图返回特定值的索引。 数组是3,8,2,5,1,4,7,6,我想返回indexOf(3),它应该是0

在导入Java.util.*之后,我在Eclipse Java剪贴簿中尝试了以下内容:

int[] A = {3,8,2,5,1,4,7,9};
Arrays.asList(A).indexOf(3)
我也尝试过:

int[] A = {3,8,2,5,1,4,7,6};
ArrayList<Integer> l = new ArrayList(Arrays.asList(A));
l.indexOf(3)
int[]A={3,8,2,5,1,4,7,6};
ArrayList l=新的ArrayList(Arrays.asList(A));
l、 索引of(3)
两者都返回-1。为什么?如何使其按预期工作?

数组。asList(A)
返回一个
列表。这是因为它需要的是对象数组,而不是基元类型。你的选择包括:

  • 使用
    Integer[]
    代替
    int[]
  • 内联数组,让自动装箱处理它<代码>数组。asList(3,8,2,5,1,4,7,9)
可以正常工作
  • 使用方法将基元数组视为
    列表
    。(披露:我为番石榴捐款。)
  • 使用Guava的
    Ints.indexOf(int[],int)
    ,它直接作用于基本数组

  • 它应该是
    Integer[]
    而不是
    int[]
    才能工作

    Integer[] A = {3,8,2,5,1,4,7,9};
    final int i = Arrays.asList(A).indexOf(3);
    System.out.println("i = " + i); // prints '0'
    
    这样做

    Integer[] array = {3,8,2,5,1,4,7,9};
    List<Integer> list = Arrays.asList(array);
    
    System.out.println(list.indexOf(8));
    
    Integer[]数组={3,8,2,5,1,4,7,9};
    列表=数组。asList(数组);
    System.out.println(list.indexOf(8));
    

    asList返回
    静态列表
    其中T不能是基元(int[])。

    谢谢大家的回答。不过,有了这个更改,我将不得不更改我的数据结构,因此我将使用binarySearch方法,因为它适用于int[]数组。请注意,这只适用于排序的
    int[]
    数组,而您描述的示例并不是。@LouisWasserman我没有得到您的评论和它得到的支持票
    indexOf
    “返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回-1。”-那么为什么它不适用于任意数组?@arekolek我指的是@rishimaharaj在我的注释上方的注释,描述使用
    binarySearch
    的计划。如果有多个数据,如数据中有多个3,如何获取位置列表?