Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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
python list.index()的Java数组模拟?_Java_Python_List - Fatal编程技术网

python list.index()的Java数组模拟?

python list.index()的Java数组模拟?,java,python,list,Java,Python,List,对于Python,我可以执行类似于array.indexelement的操作来获取数组中元素的索引。如何在Java中使用常规数组而不是arrayList来实现这一点?有类似的函数吗?您必须使用数组必须排序的方法 如果数组排序不可接受,则只有一种解决方案-完全扫描。只需在数组中循环查找元素的索引。通过使用Arrays.asList将数组转换为List,然后使用List的indexOf方法,可以实现同样的效果。您可以使用Arrays.asList,然后使用List.indexOf。使用Arrays.

对于Python,我可以执行类似于array.indexelement的操作来获取数组中元素的索引。如何在Java中使用常规数组而不是arrayList来实现这一点?有类似的函数吗?

您必须使用数组必须排序的方法

如果数组排序不可接受,则只有一种解决方案-完全扫描。只需在数组中循环查找元素的索引。通过使用Arrays.asList将数组转换为List,然后使用List的indexOf方法,可以实现同样的效果。

您可以使用Arrays.asList,然后使用List.indexOf。使用Arrays.binarySearch的其他建议很好,但需要对数组进行排序。

您可以执行以下操作:

Arrays.asList(regularArray).indexOf(elementYouWant);
或者,如果数组已排序,则可以使用

Arrays.binarySearch();

有两种方法

1.binarySearch

或者你可以循环找到它

 public int getArrayIndex(int[] myArray, obj myObject)
{
  int length = Array.getLength(myArray);//get the size of the array
  for (int i = 0; i < lenght; ++i)
   {
     if (myArray[i] == myObject)
      {
        return(i);
      }
    }
   return(-1);//didn't find what I was looking for
  }

如果您不想使用Java集合,可以使用这个。您需要在类中实现equals方法

public int index(Object[] array, Object element) {
    for(int i = 0; i < array.lenght; i++) {
        if (array[i] == element) {
            return i;
        }
        if (array[i].equals(element) {
            return i;
        }
    }
    return -1;
}

最好的方法是编写自己的函数。每个内置方法都有一些问题,比如需要为binarySearch排序数组,或者为asList方法创建一个新的列表对象

使用这样的方法

public int index( int search, int[] arr ){
  for( int i=0; i< arr.length ; i ++ )
    if( arr[ i ] == search)
     return i;
  return -1;
}
最好是安全的w/元素!=null&&element.equalsarray[i]。第一个if包含两个null。