[英]Java array analog for python list.index()?
對於Python,我可以執行諸如array.index(element)
來獲取array
某個element
的index
。 如何在Java中使用常規數組而不是arrayList做到這一點? 有類似的功能嗎?
您可以使用Arrays.asList
然后使用List.indexOf
。 使用Arrays.binarySearch
的其他建議很好,但是要求對數組進行排序。
您必須使用Arrays.binarySearch
方法(必須對數組進行排序)。
如果不接受對數組進行排序,則只有一種解決方案-全掃描。 只需遍歷數組以查找元素的索引。 通過使用Arrays.asList
將數組轉換為List,然后使用list的indexOf
方法,可以實現相同的目的。
你可以做:
Arrays.asList(regularArray).indexOf(elementYouWant);
或者,如果數組已排序,則可以使用
Arrays.binarySearch();
如果您不想使用Java,則可以使用Collections。 您需要在類中實現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;
}
有幾種方法
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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.