Schauen Sie sich ohne weiteres den Beispielcode an
Paket cn.lion.test; public class Performancetest {privatestatische endgültige int size = 100000; publicStatic abstrakter Klassentest {privatestring operation; publictest (String -Operation) {this.operation = operation; } publicabstract void test (Liste <string> liste); publicString getOperation () {return; }} // Anonyme Klasse, die iterate operationen statictest iteratetest = new Test ("iterate") {publicVoid test (Liste <string> liste) {für (inti = 0; i <10; i ++) {Iterator <String> iT = list.Inerator (); while (it.hasnext ()) {it.Next (); }}}}}}; // Random Access Anonymous Class Statictest GetTest = New Test ("get") {publicVoid test (Liste <string> liste) {for (inti = 0; i <list.size (); i ++) {for (intk = 0; k <10; k ++) {list.get.get (k); }}}}}}; // execute InsertTest InsertTest = new Test ("Insert") {publicVoid test (list <string> list) {listIterator <string> it = list.listiterator (list.size ()/2); für (inti = 0; i <size; i ++) {it.add ("Lion"); }}}}; // Führen Sie den gelöschten anonymen Klassenstatictest Removetest = New Test ("entfernen") {publicVoid test (Liste <string> list) {listIterator <string> it = list.list.Listiterator () aus; while (it.hasnext ()) {it.Next (); it.remove (); }}}; staticPublic void testArray (Liste <string> list) {test [] tests = {iteratetest, Gettest}; Test (Tests, Liste); } staticPublic void testlist (Liste <string> list) {test [] tests = {InsertTest, iteratetest, Gettest, Removetest}; Test (Tests, Liste); } staticPublic void test (test [] tests, list <string> list) {for (inti = 0; i <tests.length; i ++) {System.out.print (tests [i] .getOperation ()+"Operation:"); longt1 = system.currentTimemillis (); Tests [i] .Test (Liste); longt2 = system.currentTimemillis (); System.out.print (T2-T1+ "MS"); System.out.println (); }} publicStatic void main (string [] args) {list <string> list = null; // Iteration und Zufallszugriffsoperationen von Test Array System.out.println ("--------------"); String [] TSTR = New String [Größe]; Arrays.fill (TSTR, "Lion"); list = arrays.aSlist (TSTR); testArray (Liste); TSTR = neue Zeichenfolge [Größe/2]; Sammlung <string> coll = arrays.aslist (TSTR); // vektor system.out.println ("---------------"); list = new vector <string> (); list.addall (coll); testlist (list); // Test LinkedList system.out.println ("--------------"); list = new LinkedList <String> (); list.addall (coll); testlist (list); // ArrayList system.out.println ("-------------"); list = new ArrayList <string> (); list.addall (coll); testlist (list); }}Die Betriebsergebnisse sind in der Abbildung dargestellt
Aus den Ergebnissen können wir erkennen, dass die Geschwindigkeit des Zufallszugriffs und der Iterierung des Arrays am schnellsten ist. Die Geschwindigkeit des Einfügens und Löschens der LinkedList ist die schnellste; Die Geschwindigkeit des Zufallszugriffs auf die ArrayList ist ebenfalls sehr schnell. Die Vektorklasse hat in allen Aspekten keine hervorragende Leistung, und dieser Typ wird nicht mehr empfohlen.
Zusammenfassen
Das obige dreht sich alles um diesen Artikel. Ich hoffe, dass es für alle hilfreich sein wird, Java zu lernen oder zu verwenden. Wenn Sie Fragen haben, überlassen Sie bitte eine Nachricht, um zu diskutieren.