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:如是转载随便,请忽略
  • 相关阅读:
    关于 No buffer space available (maximum connections reached?): connect 的处理
    Cron 表达式
    Hudson 打包部署到Was上特别慢
    JAVA jar 参数
    CentOS 6 UNEXPECTED INCONSISTENCY RUN fsck MANUALLY
    SSH 连接很慢
    解决libc.so.6: version `GLIBC_2.14&#39; not found问题
    Maven 基本参数
    Shc 应用
    JAVA 关于JNI本地库加载
  • 原文地址:https://www.cnblogs.com/zwdx/p/7505911.html
Copyright © 2011-2022 走看看