0

Pythonの場合、 inのforarray.index(element)を取得するようなことができます。arrayListではなく、通常の配列を使用してJavaでこれを行うにはどうすればよいですか? 同様の機能はありますか?indexelementarray

4

6 に答える 6

5

を使用してArrays.asListから使用できますList.indexOf。使用する他の提案Arrays.binarySearchは適切ですが、配列をソートする必要があります。

于 2012-04-19T02:08:25.203 に答える
3

メソッドを使用する必要がありますArrays.binarySearch(配列をソートする必要があります)。

配列の並べ替えが受け入れられない場合、解決策は 1 つだけです。フル スキャンです。単純に配列をループして、要素のインデックスを見つけます。リストのメソッドを使用して配列をリストに変換しArrays.asList、次にリストのindexOfメソッドを使用することによって、同じことが達成できます。

于 2012-04-19T02:05:23.977 に答える
1

できるよ:

Arrays.asList(regularArray).indexOf(elementYouWant);

または、配列がソートされている場合は、使用できます

Arrays.binarySearch();
于 2012-04-19T02:09:11.150 に答える
1

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;
}
于 2012-04-19T02:09:45.530 に答える
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;
}
于 2012-04-19T02:12:47.617 に答える
0

いくつかの方法があります

1) Arrays.binarySearch

2) または、ループして見つけることもできます。

 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
  }
于 2012-04-19T02:09:13.763 に答える