2016-03-22 35 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)(常量)时间来搜索值。

相关问题