2016-03-22 38 views
0

這是我的一些當前的代碼:usedCoords檢查表<Integer>是否等於一個int

類包含:

public List<Integer> USEDX = new ArrayList<Integer>(); 

main功能包含:

if(fX % gridX == 0 && fZ % gridZ == 0 && ALPHA != 0 && usedcoords.USEDX == fX) { } 

注意我也做:usedCoords usedcoords = new usedCoords();,這就是爲什麼我將它命名爲usedcoords。

我的主要任務是我想讓usedcoords.USEDX == fX成爲可能。目前我會收到一個錯誤,因爲fX is an integerUSEDX也有整數,那麼如何檢查USEDX中的任何整數是否等於fX

在此先感謝。

+2

http://stackoverflow.com/questions/9342859/i-need-to-find-a-integer-data-in-arraylist你也可以檢查這個問題 – denis

+0

找不到它,因爲我不知道如何說出它!大聲笑 – RACING121

+1

你應該重命名問題的標題,這是相當混亂。 – manouti

回答

3

使用List#contains() - 這是更具可讀性和傳統的不具有變量名稱以大寫,除非他們是常數:

if (fX % gridX == 0 && fZ % gridZ == 0 && alpha != 0 && usedcoords.usedX.contains(fX)) { 
    ... 
} 

int變量fX會被編譯器自動裝箱到Integer類型。

+0

工作得很好但是我記得fX是一個浮點數,但是我通過轉換(int)fX – RACING121

+0

來修復它。在這種情況下,你可能會失去精度('3.0'和'3.3'將與列表中的'3'匹配)。理想情況下,你應該有一個'列表'。 – manouti

+0

但是我也確定它可以被4整除(所以它總是全部)我只需要將它們保持爲浮點數,因爲我想使用Vector3f(s) – RACING121

3

USEDX也有整數,那麼如何檢查USEDX中的任何整數是否等於fX?

通過調用List.contains(Object)回報true如果此列表包含指定的元素。喜歡的東西,

if (USEDX.contains(fx)) { 
    // ... 
} 
0

爲了效率起見,你可以使用Hashtable<Integer>,而不是List因爲它需要O(1)(常量)時間來搜索值。

相關問題