我有一个参数为 2008q3 2008q4 univ_town
State RegionName
Alabama Jacksonville 499766.666667 487933.333333 TRUE
California Los Angeles 469500.000000 443966.666667 FALSE
Illinois Chicago 232000.000000 227033.333333 TRUE
的函数。
在函数中有一个List<Long> l
语句,我必须迭代if
中存储的每个值。
我试图这样做:
List<Long> l
此处 public void myFunction(final List<Long> l) {
final int size = l.size();
for (int i = 0; i < size; i++){
if (l.get(i) <= 900) {
...
Log.d("resultL", String.valueOf(l.get(i)));
} else {
}
}
}
仅记录resultL
-64338
中存储的值为List<Long> l
,但正在发生的是[-64338, -15512, -15224, 8344]
语句仅使用if
并执行逻辑而不是使用所有4个值。
更新1 :
使用@KushPatel的回答,-64338
打印出来:
resultL
为什么会发生这种情况?
如何迭代这里存储的所有4个值而不只是一个?
请帮助解决这个问题。
答案 0 :(得分:1)
根据我的理解,您希望在所有值小于900之后做一些事情。然后你应该把它们放在另一个public void myFunction(final List<Long> l) {
final int size = l.size();
List<Long> results = new ArrayList<>();
for (int i = 0; i < size; i++){
if (l.get(i) <= 900) {
results.add(l.get(i));
} else {
...
}
}
// do your thing with results list
}
^(EN\s.*[^a-zA-Z0-9])Train([^a-zA-Z0-9].*)$
我认为有很多方法可以做到这一点,但这很简单易懂。
答案 1 :(得分:0)
如果我理解正确,如果你的所有元素都小于或等于900,你应该执行一些操作。对吗? 试试smth:
boolean isDataValid = true;
for(Long num : l){
if (num > 900){
isDataValid = false;
}
}
if(isDataValid){
}else{
}
答案 2 :(得分:0)
几个问题:
1)您正在使用Long来表示负数
,其最小值为0,最大值为264-1。当需要比int提供的值范围更宽的值时,请使用此数据类型。
2)您正在检查数字是否小于900
if(l.get(i)&lt; = 900)
否定长数将溢出并成为正数,Java(如今大多数计算机体系结构)使用称为Two's complement的东西,所以你的一些数字变成大于900的数字,它们将不会印在屏幕上。
<强>解决方案强>
1)使用Integer代替长
public void myFunction(final List<Integer> l) {
final int size = l.size();
List<Integer> results = new ArrayList<>();
for (int i = 0; i < size; i++){
if (l.get(i) <= 900) {
results.add(l.get(i));
} else {
...
}
}
答案 3 :(得分:-1)
@Component({
selector: 'http-test',
template: `
<ul>
<li *ngFor="#data of httpData>{{data.items.related_sites[0].name}} //trying to iterate the response data.
</li>
</ul>
`,
providers:[HTTPTestService]
})
export class HTTPTestComponent {
public httpData;
constructor (private _httpService: HTTPTestService){}
getStack(){
this._httpService.getItemData()
.subscribe(
data =>this.httpData = JSON.stringify(data),
error => alert(error),
() =>console.log("finished")
);
}
ngOnInit() {
this.getStack();
}
}