2013-07-20 38 views
-1

我需要評估數組中滿足某個條件的最後一個int。我的程序可以計算出那個int是什麼,但它也需要知道它在陣列中的位置。我搜索堆棧交換和有人張貼這樣的:有沒有Java中的方法,可以讓你找到一個int數組中的元素的索引?

Arrays.asList(array).indexOf(indexPos); 

作爲一種可能的解決辦法,但我不知道如果我這樣做是正確的,因爲我得到的錯誤 無法找到象徵。我也允許:

int test = Arrays.asList(array).indexOf(indexPos); 

然後試圖打印測試,但我甚至無法達到這一點。謝謝。

+1

你從哪裏得到這個錯誤? –

+1

你爲什麼不簡單地在數組上循環? – Maroun

+0

LexiSort.java:95:錯誤:找不到符號 \t \t \t int test = Arrays.asList(seq).indexOf(indexPos); 這是錯誤,我需要導入任何東西嗎? – entropy

回答

1

您可能需要import java.util.Arrays才能獲得符號。

除了在數組上循環外,沒有保證的方式來查找數組中元素的位置 - 這基本上就是您的asList片段正在執行的操作。

只要您的數組沒有重複的值,這將工作。如果您需要處理重複值,則可能需要重新考慮數據結構。

+0

我沒有任何重複,但爲什麼我找不到符號錯誤? – entropy

+0

@ user2396852請參閱編輯re:'import java.util.Arrays' – John3136

0

有人發佈了類似的問題,其他人問。看來這對我有效。

的代碼是:

java.util.Arrays.asList(seq).indexOf(indexPos); 

和問題:Where is Java's Array indexOf?

0

是您在List接口中定義的方法。所以你需要使用asList()函數,接着是indexOf()函數。

如果數組是沒有排序,你可以使用java.util.Arrays.asList(theArray).indexOf(o) 如果數組進行排序,您可以使用二進制搜索功能(可以提高性能)java.util.Arrays.binarySearch(theArray, o)

至於錯誤請確保您已導入java.util.Arrays。此外,您已經定義了Array seq和int indexPos,它們使您的代碼爲int test = Arrays.asList(seq).indexOf(indexPos);

相關問題