如何迭代List <long>中存储的每个值?

时间:2016-12-29 13:23:18

标签: android arrays if-statement for-loop arraylist

我有一个参数为 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个值而不只是一个?

请帮助解决这个问题。

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();
    }
 }