Tanpa basa -basi lagi, lihat saja kode sampel
Paket cn.lion.test; Kelas Publik PerformanceTest {Privatestatic Final int size = 100000; tes kelas abstrak publicstatic {operasi privatestring; publictest (operasi string) {this.operation = operasi; } tes publicabstract void (daftar <string> daftar); publicString getOperation () {return; }} // kelas anonim yang melakukan operasi iterate statictest iteratetest = test baru ("iterate") {publicVoid test (daftar <string> daftar) {for (inti = 0; i <10; i ++) {iterator <string> it = list.iterator (); while (it.hasnext ()) {it.next (); }}}}}}; // Jalankan akses acak anonim kelas statictest getTest = test baru ("get") {publicVoid test (daftar <string> daftar) {for (inti = 0; i <list.size (); i ++) {for (intk = 0; k <10; k ++) {list.get (k); }}}}}}; // Jalankan InsertTest InsertTest = tes baru ("Sisipkan") {publicVoid test (daftar <string> daftar) {ListIterator <string> it = list.listIterator (list.size ()/2); untuk (inti = 0; i <size; i ++) {it.add ("Lion"); }}}}; // Jalankan kelas anonim yang dihapus statictest remoVeTest = tes baru ("hapus") {publicVoid test (daftar <string> daftar) {listIterator <string> it = list.listIterator (); while (it.hasnext ()) {it.next (); it.remove (); }}}; staticpublic void testarRay (daftar <string> daftar) {test [] tests = {iteratetest, gettest}; tes (tes, daftar); } staticpublic void testList (daftar <string> daftar) {test [] test = {insertTest, iteratetest, gettest, removetest}; tes (tes, daftar); } staticpublic void test (tes [] tes, daftar <string> daftar) {for (inti = 0; i <tests.length; i ++) {System.out.print (tes [i] .getOperation ()+"operasi:"); longt1 = system.currentTimemillis (); tes [i] .test (daftar); longt2 = system.currentTimemillis (); System.out.print (T2-T1+ "MS"); System.out.println (); }} publicstatic void main (string [] args) {list <string> list = null; // iterasi dan operasi akses acak dari tes array system.out.println ("-------------"); String [] tstr = string baru [size]; Arrays.fill (tstr, "singa"); list = arrays.aslist (tstr); testarray (daftar); tstr = string baru [ukuran/2]; Koleksi <string> coll = arrays.aslist (tstr); // uji vektor system.out.println ("---------------"); Daftar = vektor baru <string> (); list.addall (coll); TestList (Daftar); // tes linkedlist system.out.println ("--------------"); list = new LinkedList <String> (); list.addall (coll); TestList (Daftar); // test arraylist system.out.println ("-------------"); list = new ArrayList <String> (); list.addall (coll); TestList (Daftar); }}Hasil operasi ditunjukkan pada gambar
Dari hasilnya, kita dapat melihat bahwa kecepatan akses acak dan mengulangi array adalah yang tercepat; Kecepatan memasukkan dan menghapus LinkedList adalah yang tercepat; Kecepatan akses acak ke arraylist juga sangat cepat; Kelas vektor tidak memiliki kinerja luar biasa dalam semua aspek, dan jenis ini tidak lagi direkomendasikan.
Meringkaskan
Di atas adalah semua tentang artikel ini, saya harap akan sangat membantu bagi semua orang untuk belajar atau menggunakan Java. Jika Anda memiliki pertanyaan, silakan tinggalkan pesan untuk didiskusikan.