flutter for循环removeAt(i)数据遇到的问题

通常都是for循环遍历从前往后顺序,这时候遇到符合条件的通过下标把该数据删掉,

for (int i = 0; i < 40; i++) {
    
    
    if(i==2){
    
    
    removeAt(i)}
}

删一个数据不会出问题,如果要删多个数据就会有问题了,比如i为0时删了列表第一个,那列表原先的第二个就成为了第一个。这时候i==1了,后来成为第一个的元素不会被删掉,而是删了原来的第三个。

解决方法就是从后面往前删,元素的下标不会改变。

      for(int i=list.size()-1;i>=0;i--){
    
    
          System.out.print(list.get(i)+"\t");
      }

猜你喜欢

转载自blog.csdn.net/weixin_44911775/article/details/130861201
今日推荐