开发文章

java循环删除list中的多个元素实现

java循环删除list中的多个元素实现

复制内容到剪贴板
  1. import java.util.ArrayList;  
  2. import java.util.Arrays;  
  3. import java.util.List;  
  4.   
  5.   
  6. /** 
  7.  * 删除一个list中的其中几个元素的操作 
  8.  * 
  9.  */  
  10. public class RemoveTest {  
  11.    
  12.    
  13.  /** 
  14.   *得到要用来进行演示的数据  
  15.   * @return 
  16.   */  
  17.  public static List<Integer> initData(){  
  18.    List<Integer> datas = new ArrayList<Integer>();  
  19.    Integer data = null;  
  20.    for(int i=1;i<=10;i++){  
  21.     data = new Integer(i);  
  22.     datas.add(data);  
  23.        
  24.    }  
  25.      
  26.   return datas;  
  27.  }  
  28.    
  29.    
  30.    
  31.  public static void main(String[] args) {  
  32.   int[] indexArr = new int[]{1,9,2,5};    
  33.   //定义要删除list中集合的下标组合,一般在真正项目中,这个数组都是有程序执行得到,一般都是排序正常的  
  34.   //这里为了演示如何对数组进行排序,所以打乱了顺序  
  35.     
  36.   Arrays.sort(indexArr); //调用Arrays这个类的静态方法sort对数组进行排序,排序结果为正序  
  37.   for(Integer index : indexArr){  
  38.    System.out.println(index);  
  39.   }  
  40.     
  41.   List<Integer> datas = initData(); //得到测试数据  
  42.     
  43.   //因为要删除list里面的多个的值,所以会涉及到一个问题,就是当你删除掉下标为1的元素十,  
  44.   //原来下标为2的元素会自动改变自己的下标为0,后面的元素依次把自己的下标值减一  
  45.     
  46.   //鉴于这种情况,我们想循环删除list中的多个元素的话,就必须从后往前删,这样保障了你删除了一个元素之后,  
  47.   //list中元素的下标移动不会影响到那些需要删除,但是还未删除到的元素     
  48.    System.out.println("删除前:  "+datas);  
  49.       
  50.   for(int i=indexArr.length-1;i>=0;i--){ //倒序  
  51.     if(i<=datas.size()){  
  52.      System.out.println("删除了第  "+(indexArr[i]+1)+" 个元素");  
  53.     datas.remove(indexArr[i]);  
  54.      }   
  55.    }  
  56.     
  57.    System.out.println("删除后:  "+datas);  
  58.     
  59.  }  
  60.     
  61.  }   

 

上一篇:c# 异常处理机制

下一篇:返回列表

文章信息

发布时间:2017-04-15

发布者:aquwcw

浏览次数: