[Java lista] array

Tamás Viktor viktor.tamas at gmail.com
2009. Dec. 10., Cs, 15:43:38 CET


Osszedobtam egy kis kodot, ime az eredmenye:

Konstruktor: 1412
Array fill: 465
Sajat fill: 458
ArrayCopy: 388

Tehat az arrayCopy nyer. Figyeljetek meg a hasznalatat, nem kell hozza ket tomb.
V

public class A {
	
	static final int M = 1000000;
	static final int N = 256;
	
	public static void main(String[] args) throws Exception{
		t1();
		t2();
		t3();
		t4();
	}
	
	private static void t1() {
		long t0 = System.currentTimeMillis();
		int[] array;
		for(int i=0;i<M;i++) {
			array = new int[N];
			array = null;
		}
		long t1 = System.currentTimeMillis();
		System.out.println("Konstruktor: " + (t1-t0));		
	}
	
	private static void t2() {
		long t0 = System.currentTimeMillis();
		int[] array = new int[N];
		for(int i=0;i<M;i++) {
			java.util.Arrays.fill(array, 0);
		}
		long t1 = System.currentTimeMillis();
		System.out.println("Array fill: " + (t1-t0));		
	}
	
	private static void t3() {
		long t0 = System.currentTimeMillis();
		int[] array = new int[N];
		for(int i=0;i<M;i++) {
			for(int j=0;j<N;j++) array[j] = 0;
		}
		long t1 = System.currentTimeMillis();
		System.out.println("Sajat fill: " + (t1-t0));		
	}
	
	private static void t4() {
		long t0 = System.currentTimeMillis();
		int[] array = new int[N];
		for(int i=0;i<M;i++) {
			array[0] = 0;
			System.arraycopy(array, 0, array, 1, array.length-1);
		}
		long t1 = System.currentTimeMillis();
		System.out.println("ArrayCopy: " + (t1-t0));		
	}
}


További információk a(z) Javalist levelezőlistáról