Artikel ini menjelaskan pembedahan array dan operasi penyortiran yang diimplementasikan oleh Java. Bagikan untuk referensi Anda, sebagai berikut:
Berikut adalah demonstrasi operasi pengimpuan array dan operasi penyortiran array Java
Contoh kode sumber yang ditulis dalam artikel ini didasarkan pada jdk1.6+, junit4.8.2
java.util.Arrays.sort()
Dukung penyortiran int[] , long[] , short[] , char[] , byte[] , float[] , double[] , Object[]
Cuplikan kode sampel referensi adalah sebagai berikut
// Nyatakan array int dan inisialisasi int [] intarry = {5,4,7,8,2,0,1,9,3,6,10}; // urutkan array int.Kode Sumber Kelas Tes Junit:
Paket com.gjnote.test.array; import java.util.arrays; impor org.junit.test; kelas publik testarrayssort {// mendeklarasikan array int dan inisialisasi int [] intarry = {5,4,7,8,2,0,1,9,3,6,10}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Arrays.sort (intarry); for (int i = 0; i <intarry.length; i ++) {System.out.println (intarry [i]);} System.out.println (arrays.toString (intarry));}}Output konsol
0
1
2
3
4
5
6
7
8
9
10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
java.util.Collections.sort()
Perbandingan objek direalisasikan dengan mengimplementasikan metode compare internal
Cuplikan kode sampel adalah sebagai berikut
/*** Gunakan collections.sort (daftar, komparator () {});*Metode yang disarankan untuk penyortiran array daftar*/public void collectionsSortElement1 (daftar daftar) {collections.sort (daftar, pembanding baru () {@Overridepublic int perbandingan (string o1, string o2) {//menyesuaikan pesanan objek compareto retreeto retrey dengan string o1, string o2) {/Sejangkan Objek Compareto Return Menurut REKTRETO TERRAYS AKUDIT TUNGKAT DAFTOR OUSTRETO TERRAGTO TERRAGTO TERRAYS AKURTASI TUNGKAT REKUTRAN (STRING O2, (o2) .compareto (o1);}});}Java mengimplementasikan daftar deduplikasi
Metode 1: Gunakan untuk loop traversal untuk menghapus elemen duplikat dalam daftar
Cuplikan kode adalah sebagai berikut
Daftar Templist = ArrayList baru (); // Hapus elemen duplikat dari daftar asli untuk (String String: OriginAllist) {if (! Templist.Contains (String)) {Templist.Add (String);}}Metode 2: Gunakan Set ke Deduplikat
Cuplikan kode adalah sebagai berikut
// Set menggunakan keunikan elemen set dan set deduplicate set = hashset baru (originAllist); daftar templist = new arraylist (set);
Metode 3: Gunakan TreeSet untuk menghapus elemen duplikat
Treeset Treeset = TreeSet baru (OrighAllist); listTemplist = new arraylist (); Templist.addall (Treeset); // Treeeset Penyortiran default adalah urutan naik, tambahkan apakah urutan terbalik diperlukan sesuai dengan situasi aktual. Collections.reverse (templist);
Java mengimplementasikan Derepeatment of List setelah penyortiran
Daftar tes junit deduplikasi dan menyortir kode sumber
Paket com.gjnote.test.array; import java.util.arraylist; import java.util.collections; impor java.util.comparator; impor java.util.hashset; impor java.util.list; import java.util.set; impor java.util.trereesy; org.junit.Test;/*** Test Class*List Array De-heavy Element Sort** @version 1.0* @author www.gjnote.com**/public class TestListArraySort {private ListoriginalList = null;@Beforepublic void setUp() throws Exception {originalList = new ArrayList();for (int i = 10000; i > 0; i--) {OriginAllist.Add ("Element" + i); // Tambahkan Repeat ElementIf (i % 2 == 0) {OriginAllist.Add ("Element" + i);}}/*** Elemen Daftar Output*@param List*/Private Void OutputList (Daftar Daftar) {untuk (int i = 0; i <list.size (); {System.out.println (list.get (i));}}/*** Gunakan collections.sort (list, comparator () {});*Metode penyortiran yang disarankan*/private void collectionSortelement (daftar) {string start = System.currentTimeMillis (); collections.sort (list) {long start = System.currentTimillis (); collection.sort (list) {string) @OpLOP @EPOP@() @OpLEP (); collections. {// Sesuaikan urutan objek compareto sesuai dengan penyortiran aktual perlu dikembalikan o2.mpareto (o1);}}); // outputlist (templist); System.out.println ("collections.sort:" + (System.currentTimeMillis () - start) + "ms"); Collections.sort sort*/@testpublic void testForLoopRemoverEpeatElement () {System.out.println ("TestForLoopRemoverepeatElement"); Long Start = System.CurrentTimeMillis (); Daftar Templist = ArrayList baru (); // Hapus elemen duplikat untuk (String String: OriginAllist) {if (! Templist.contains (string)) {Templist.add (string);} // sortir koleksi. Loop untuk melintasi daftar dan menghapus elemen duplikat: " + (System.currentTimeMillis () - start) +" ms ");}/*** uji untuk menggunakan set ke deduplicate; * Gunakan collections.sort (daftar, komparator () {}); Urutkan **/@testpublic void testsetremoverepeateLement () {System.out.println ("testsetremoverepeateLement"); Long start = system.currentTimeMillis (); // urutkan pertama (nilai teoretis: penyortiran pertama dan kemudian deduplikasi akan lebih efisien daripada menyortir nanti) collectionssortelement (originalAllist); // set menggunakan keunikan elemen yang ditetapkan, deduplikasi set (set hashset new (originallist); Daftar baru = Daftar baru = DEDUPLIKASI SET = HASHSET NEWSELIST (OriginAllist); Daftar Daftar New sorting try running time //collectionsSortElement(tempList);//outputList(tempList);System.out.println("Collections.sort sort, use Set to deduplicate: "+ (System.currentTimeMillis() - start) + "ms");}/*** Test Use TreeSet to remove duplicate elements* Default sort or Collections.reverse flip urutkan*/@testpublic void testtreesetremoverepeateLement () {System.out.println ("testtreesetremoverepeatelement"); Long start = System.currentTimeMillis (); TreeesetTreeSet = Treeset baru (originAllist); listTemplist = new arraylist (); Templist.addall (Treeeset); // Treeset Jenis default adalah pesanan naik, tambahkan apakah Anda perlu membalikkan sesuai dengan situasi yang sebenarnya. Collections.reverse (templist); // outputlist (templist); system.out.println ("urutkan dengan treeset, hapus elemen duplikat:" + (System.currentTimeMillis () - start) + "ms");}@testpublic void testMethods () {//output (output/output@outpublic; testsetremoverepeatElement (); // 14mstesttreesetremerePeatElement (); // 20ms // testforloopremoverepeatElement (); // 2525ms}}Jalankan testsetremoverepeatElement () konsol untuk menghasilkan hasil
TestsetremoverepeatElement
Collections.sort: 8ms
Collections.sort sort, gunakan set ke deduplicate: 14ms
Jalankan konsol testtreesetremoverepeatelement () untuk menghasilkan hasilnya
TesttreesetremoverepeatElement
Urutkan dengan TreeSet, Hapus Elemen Duplikat: 20ms
Jalankan konsol testforloopremoverepeateLement () untuk menghasilkan hasilnya
TestForLoopRemoverepeatElement
Collections.sort: 7ms
Gunakan daftar loop untuk melintasi, hapus elemen duplikat: 2525ms
PS: Berikut beberapa alat terkait untuk referensi Anda:
Alat Penghapusan Online:
http://tools.vevb.com/code/quchong
Alat Pengulangan Teks Online:
http://tools.vevb.com/aideddesign/txt_quchong
Demonstrasi Animasi Online Sisipkan/Pilih/Bubble/Gabungan/Hill/Algoritma Proses Algoritma Penyortiran Cepat:
http://tools.vevb.com/aideddesign/paixu_ys
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.