使用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循環有更強的適應性,特別是在循環中需要對數據進行刪除等操作時使用比較方便


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM