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("\r<br>執行耗時 : "+(System.currentTimeMillis()-a)+" 秒 ");
        long a1=System.currentTimeMillis();
        array.test2();
        System.out.println("\r<br>執行耗時 : "+(System.currentTimeMillis()-a1)+" 秒 ");
    }
}

結果如下:

<br>執行耗時 : 1 秒

<br>執行耗時 : 0 秒


免責聲明!

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



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