System.currentTimeMillis

classio10

Mitglied
Java:
import java.util.ArrayList;


public class Test {

	
	public static void main(String[] args) {
		
		int n = 150000;
    	ArrayList<String> list = new ArrayList<String>();
    	long a = System.currentTimeMillis();
        //einfügen von n elemente am ende
    	for (int i=0; i<n; i++) {
            list.add("element #" + i);
          }
        System.out.println(System.currentTimeMillis() - a);


	
        long b = System.currentTimeMillis();
        //einfügen von n elemente am anfang
        for (int i=0; i<n; i++) {
        list.add(0, "element #" + i);
        }
        System.out.println(System.currentTimeMillis() - b);
		}
}
wenn ich das programm laufen lasse bekomme ich nur das ergebniss für a,
wieso bekomme ich b nicht ausgeben?? habe ich da beim code irgendwas falsch??

gruß
gök
 
Nö, du bist zu ungeduldig 😀
Da du immer vorne(bzw besser gesagt nicht hinten) einfügst, muss bei JEDEM Einfügen das Array kopiert werden, das dauert halt....
 
Du kannst übrigens mithilfe des Konstruktors von ArrayList auch die Start-Kapazität setzen:
(Du weißt ja bereits vorher wieviele Elemente du genau (bzw. ungefähr) einfügen willst, nämlich 2*n.)

Java:
ArrayList<String> list = new ArrayList<String>(2*n);
 

Neue Themen


Zurück
Oben