我正在检索一些长值并将其存储在List<Long> l
中。
以下是List<Long> l
的注销值:
D/lng: [2197, -1007, 4003]
然后,我尝试将其与long
或<=900
等>900
值进行比较。
以下是:
public void filterRequests(final List<Long> l) {
final int size = l.size();
int i;
for (i = 0; i < size; i++){
}
Log.d("lng", String.valueOf(l));
if (l.get(i) <= 900) {
// do the logic when l <= 900
} else {
}
}
问题是if (l.get(i) <= 900)
或if (l.get(i) > 900)
即使l.get(i)
的值均为<=900
和>900
,也无法正常工作,请参阅:{{1 }}
更新:@HarisQureshi的答案有效,但问题是D/lng: [2197, -1007, 4003]
循环的原因,内部的for
条件被调用了3次而我希望它只被调用一次。所以,我想知道有没有办法在该代码上方定义if
循环,然后在for
和i
条件中使用if (l.get(i) <= 900)
?
答案 0 :(得分:0)
您使用Long
制作了一个列表,List
和Long
都不是原始数据类型。
在您的问题中,您要比较原始数据类型和非原始数据类型,以便比较比较器的两侧应具有相同的数据类型。
你在做什么:
if (l.get(i) <= 900)
此处l.get(i)
返回Long
值,其中900
为整数值。
你应该做什么:
只需将您的l.get(i)
与Long
进行比较900L
if (l.get(i) <= 900L)
或
if (l.get(i) > 900L)