zoukankan      html  css  js  c++  java
  • 使用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循环有更强的适应性,特别是在循环中需要对数据进行删除等操作时使用比较方便

  • 相关阅读:
    python学习笔记Day3
    python学习笔记Day2
    IIS7.5部署除静态页面外都是404的解决方案
    CommandBehavior.CloseConnection有何作用
    没事别老待在家里
    冻结表格行列的思路
    如何构建逻辑清晰的可拖拽树的数据结构
    “仅次于20年前的最好的时间是现在“
    java的静态代理和2种动态代理(未完,待续)
    i++和++i
  • 原文地址:https://www.cnblogs.com/wyf-love-dch/p/7273858.html
Copyright © 2011-2022 走看看