我正在檢索一些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