问题描述
我正在检索一些长值并将其存储在列表< Long>升
。
I'm retrieving some long values and storing it in List<Long> l
.
以下是 List< Long>的注销值l
:
D/lng: [2197, -1007, 4003]
然后,我试图将它与 long
之类的值进行比较< = 900
或> 900
。
Then, I'm trying to compare it with long
values like <=900
or >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如果(l.get(i)>> 900)
即使在 l.get(i)
的值均为< = 900
和> 900
,见: D / lng:[2197,-1007,4003]
The problem is that if (l.get(i) <= 900)
or if (l.get(i) > 900)
both is not working even when the l.get(i)
has values both <=900
and >900
, see: D/lng: [2197, -1007, 4003]
UPDATE :@HarisQureshi的答案有效,但问题是的原因是
循环,如果
内部条件被调用3次,而我希望它只被调用一次。所以,我想知道有没有办法在该代码上面定义 for
循环,然后使用 i
in if(l.get(i)< = 900)
和 if(l.get(i)> 900)
条件?
UPDATE: @HarisQureshi 's answer worked but the problem is that cause of the for
loop, the if
condition inside is getting called 3 times while I want it to get called only once. So, I want to know that is there a way to define for
loop above that code and then use the i
in the if (l.get(i) <= 900)
and if (l.get(i) > 900)
conditions?
推荐答案
你用 Long
制作了一个列表, List
和 Long
都不是原始数据类型。
在您的问题中,您正在比较原始数据类型和非原始数据类型,为了进行比较,比较器的两侧应该具有相同的数据类型。
You made a list with Long
, both List
and Long
are not primitive data types.In your question you are comparing primitive and non primitive data types, for comparison both sides of a comparator should be of same data types.
什么你在做什么:
if (l.get(i) <= 900)
此处 l.get(i)
返回长
值,其中 900
是整数值。
Here l.get(i)
returns a Long
value where as 900
is integer value.
什么你应该这样做:
只需将 l.get(i)
与<$ c $进行比较c>长做 900L
if (l.get(i) <= 900L)
或
if (l.get(i) > 900L)
这篇关于如何比较List< Long>中存储的值价值很高?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!