使用for循环取出所需要的值生成新的列表

在开发过程中对于集合的遍历一般采用for循环,

但在循环中移除数据的时候for循环无法满足该需求,

这时需要通过Iterator来实现循环中移除数据。

例如现在有这样一个需求,一个集合(ArrayList)中有0-9 10个数据,需要移除其中的偶数。打印剩下的奇数。

通过for循环来操作将会写出如下代码:

方法1:

      利用for循环获得偶数

package com.hyhl.util;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ForList {
    public static void main(String[] args) {  
        List<Integer> list = new ArrayList<Integer>(10);  
        for (int i = 0; i < 10; i++) {  
            list.add(i);  
        }  
        
        List<Integer> shuList = new ArrayList<Integer>();
     //新建一个偶数列表 shuList ,将list表中的所有偶数放入shuList表中
for(Integer shu:list){ if(shu%2==0){ shuList.add(shu); } }
//第二步,将list表中的shuList的数据移除,就得到需要的list
for(Integer s:shuList){ list.remove(s); } for (int number : list) { System.out.println(number); } } }

 

 

 

 方法2:

直接使用:Iterator来实现循环中移除数据,如下所示:

 

package com.hyhl.util;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ForIterator {
    public static void main(String[] args) {  
        List<Integer> list = new ArrayList<Integer>(10);  
        for (int i = 0; i < 10; i++) {  
            list.add(i);  
        }  
        
        
        for (Iterator<Integer> iterator = list.iterator(); iterator.hasNext();) {  
            Integer val = iterator.next();  
            if (val % 2 == 0) {  //是偶数的时候已移除某一项
                iterator.remove();  
            }  
        }  
        for (int number : list) {  
            System.out.println(number);
        }  
    } 

 结论:Iterator比for循环有更强的适应性,特别是在循环中需要对数据进行删除等操作时使用比较方便

posted @ 2017-08-02 14:51  坠落凡尘的魔鬼  阅读(2336)  评论(0编辑  收藏  举报