我正在检索一些long值并将其存储在List<Long> l
中。如何将列表<Long>中存储的值与长整型值进行比较?
这里是List<Long> l
的退出值:
D/lng: [2197, -1007, 4003]
然后,我想它像<=900
或>900
long
值进行比较。
方法如下:
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
,请参阅:D/lng: [2197, -1007, 4003]
UPDATE:@HarisQureshi“答案工作,但问题是,for
循环的原因,if
条件里面被调用3次,而我想它只能被调用一次。所以,我想知道有没有办法在代码上面定义for
循环,然后在if (l.get(i) <= 900)
和if (l.get(i) > 900)
条件中使用i
?
太多不相干的代码比较你
l.get(i)
与Long
。请阅读:[如何创建一个最小,完整和可验证的示例](http://stackoverflow.com/help/mcve)。示例:[IDEONE](http://ideone.com/I3pgHv) – Andreas在方法返回后,传递给'filterRequests()'的列表是否已更新?请记住,您的'onDataChange()'处理程序稍后会被调用,并且它们引用该*相同的*列表。声明参数'final'不会使列表不可变。不要混淆“Java是按值传递”与它是通过值传递的* reference *值的事实。该列表本身将被视为通过引用传递,因此该方法和调用者*共享*相同的列表。 – Andreas
不使用Android/firebase或其他创建示例。纯Java和本地类。这会更简单,你甚至可以自己找到答案......这是Andreas链接的解释。 – AxelH