zoukankan      html  css  js  c++  java
  • Java 对数组的筛选

      在Java里面 一般对一个数组进行筛选,去剔除一些元素,一般做法是用临时数组来存储,把符合条件的元素加入到新数组中,虽然数组有移除的方法但是 是线程不安全的;

    而用迭代器Iterator,可以在遍历的情况下可以进行元素移除,原因是它是线程安全的,效率相对好点。

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class Array {
         
        public void test1(){
            List<Integer> list = new ArrayList<>();
            for(int i =0 ;i<100;i++){
                list.add(i);
            }
            List<Integer> list1 = new ArrayList<>();
            for(Integer item : list){
                if(item>2){
                    list1.add(item);
                }
            }
        }
        
        public void test2(){
            List<Integer> list = new ArrayList<>();
            for(int i =0 ;i<100;i++){
                list.add(i);
            }
            Iterator<Integer> iter = list.iterator();
            while(iter.hasNext()){
                if(iter.next()<=2){
                    iter.remove();
                }
            }
        }
        
        public static void main(String args[]){
            Array array = new Array();
            long a=System.currentTimeMillis();
            array.test1();
            System.out.println("
    <br>执行耗时 : "+(System.currentTimeMillis()-a)+" 秒 ");
            long a1=System.currentTimeMillis();
            array.test2();
            System.out.println("
    <br>执行耗时 : "+(System.currentTimeMillis()-a1)+" 秒 ");
        }
    }

    结果如下:

    <br>执行耗时 : 1 秒

    <br>执行耗时 : 0 秒

    版权声明:如需转载,请注明!PS:如是转载随便,请忽略
  • 相关阅读:
    P3396 哈希冲突 TJ
    U135884 膜法问题 TJ
    U135075 简单数列 TJ
    U135649 皇室战争 TJ
    SF&SJJG-ST表
    牛客NOIP集训三S 牛半仙的妹子数 TJ
    UVA297 四分树 Quadtrees TJ
    UVA679 小球下落 Dropping Balls TJ
    [ACM] CF水题记
    Hoppz的收藏夹
  • 原文地址:https://www.cnblogs.com/zwdx/p/7505911.html
Copyright © 2011-2022 走看看