In diesem Artikel werden die von Java implementierten Array -DerePatment- und Sortiervorgänge beschrieben. Teilen Sie es für Ihre Referenz wie folgt weiter:
Hier ist eine Demonstration von Java, die Array -Deduplizierung und Sortiervorgänge implementieren
Der im Artikel geschriebene Beispielquellencode basiert auf JDK1.6+, junit4.8.2
java.util.Arrays.sort()
Unterstützung bei der Sortierung int[] , long[] , short[] , char[] , byte[] , float[] , double[] , Object[]
Der Referenz -Beispielcode -Snippet lautet wie folgt
// das Int -Array deklarieren und int init [] intarry = {5,4,7,8,2,0,1,9,3,6,10}; // Sortieren Sie die Int -Arrays.sort (intarry);Quellcode für JUNIT -Testklassen:
Paket com.gjnote.test.array; import Java.util.Arrays; import org.junit.test; public class testArraysSort {// das int -Array deklarieren und das int [] intarry = {5,4,7,8,2,0,1,9,3,6,10}; Arrays.sort (intarry); für (int i = 0; i <intarry.length; i ++) {System.out.println (intarry [i]);} System.out.println (Arrays.toString (intarry));}}Konsolenausgabe
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()
Der Vergleich von Objekten wird durch die Implementierung der internen compare realisiert
Der Beispielcode -Snippet ist wie folgt
/*** Verwenden Sie Collectionss.sort (Liste, vergleicher () {});*Empfohlene Methode zum Sortieren von Listen -Arrays*/public void CollectionsSortelement1 (Listenliste) {Collections.sort (Liste, New CompueR () {@OverridePublic Intc -Int -Compare (String O1, String O2) {// // passen Sie die ordnungsgemäßen Vergleichsobjekte nach den Vergleichsanforderungen an, die die ordnungsbedingten Vergleichsanwendungen nach den Vergleichsanforderungen anpassen. (O2) .Compareto (O1);}});}Java implementiert die Liste der Deduplizierung
Methode 1: Verwenden Sie für die Schleifentraversal, um doppelte Elemente in der Liste zu entfernen
Der Code -Snippet ist wie folgt
List templist = new ArrayList (); // Entfernen Sie doppelte Elemente aus der ursprünglichen Liste für (String String: OriginAllist) {if (! Templist.contains (String)) {templist.add (String);}}Methode 2: Verwenden Sie einsatz zum Deduplicate
Der Code -Snippet ist wie folgt
// set verwendet die Einzigartigkeit des festgelegten Elements und des deduplicate set set = new Hashset (OriginAllist); list templist = new ArrayList (set);
Methode 3: Verwenden Sie Treeset, um doppelte Elemente zu entfernen
Treeset treeset = neuer treeset (OriginAllist); ListTemplist = new ArrayList (); templist.addall (Treeset); // Treeset Die Standardsortierung ist aufsteigende Reihenfolge, fügen Sie hinzu, ob die inverse Reihenfolge gemäß der tatsächlichen Situation erforderlich ist. Sammlung.Reverse (Templist);
Java implementiert DerePreatment der Liste nach der Sortierung
JUNIT -Testliste Deduplizierung und Sortierquellcode
Paket com.gjnote.test.array; import Java.util.ArrayList; Import Java.util.Collections; Import Java.util.comParator; import Java.util.hashset; import Java.util.List; Import Java.util.set; import. Testklasse*List Array De-Heavy-Element-Sortierung ** @Version 1.0*@Author www.gjnote.com **/public class testlistarraysort {private listoriginAllist = null; @beforepublic void setup () throws Exception {Originallist = new ArrayList (); Wiederholungselement hinzufügen (i % 2 == 0) {OriginAllist.Add ("Element"+i);}}}/*** Ausgabeliste Element*@param list*/private void outputlist (Liste) {für (int i = 0; i <list.size (); Vergleicher () {});* Empfohlene Sortiermethode*/private void collectionsSortelement (Listliste) {Long start = system.currentTimillis (); Collections.sort (List, New CompueR () {@Overridepublic Int -Compare O1, String O2) {// passen Sie die ordnungsgemäßen Vergleichsobjekte nach den Vergleichsobjekten an, die nach dem Vergleichsobjekte nach dem Vergleichsobjekte nach der Sorte nach dem Sortieren müssen. o2.compareTo(o1);}});//outputList(tempList);System.out.println("Collections.sort:"+ (System.currentTimeMillis() - start) + "ms");}/*** Test to use for loop traversal to remove duplicate elements* Collections.sort sort*/@Testpublic void testForLoopRemoveRepeatElement() {System.out.println ("testforloopremoverepeatElement"); Long start = system.currentTimemillis (); listen templist = new ArrayList (); // Entfernen Sie doppelte Elemente für (String String: OriginAllist) {if (! templist.contains (String)) {templist.add (String);}} // sortionsSortel (Templist). Traverse -Liste und Entfernen von doppelten Elementen: " + (System.currentTimemillis () - Start) +" ms ");}/*** Test zur Verwendung auf DedUplicate; * Verwenden Sie Collections.sort (Liste, vergleicher () {}); Sortieren **/@testpublic void testSetRemoverePeatElement () {System.out.println ("testSetremoverePeatElement"); Long start = system.currenttimemillis (); // Sortieren zuerst (theoretischer Wert: Sortieren zuerst und dann ist die Deduplikation effizienter als später sortieren) Sammlungssortelement (OriginAllist); // Set verwendet die Einzigartigkeit von Set Elements, Deduplication Set Set = New Hashset (Originallist). Sortieren Versuchen Sie die Laufzeit //collectionsSortelement(Templist);/outputlist(Templist); System.out.println("collections.Sort Sortieren Sie einsatz auf deduplicat: " + (System.CurrentTimemillis () - Start) +" MS "); sortieren*/@testpublic void testreesetreMoverepeatElement () {System.out.println ("testTreesetReMoverePeatElement"); Long start = system.currentTimemillis (); treesetreeset = neuer TreesSet (OriginAllist); ListTemplist = new ArrayList (); Templist.addall (Treeset); // Treeset Die Standardsortierung ist aufsteigender Reihenfolge hinzufügen, ob Sie nach der tatsächlichen Situation umkehren müssen. Collections.reverse(tempList);//outputList(tempList);System.out.println("Sort with TreeSet, remove duplicate elements: "+ (System.currentTimeMillis() - start) + "ms");}@Testpublic void testMethods() {//outputList(originalList);// List Recommended method for deduplication testSetRemoverePeatElement (); // 14mstestreesetReMoverePeatElement (); // 20ms // testforloopremoverepeatElement (); // 2525ms}}Führen Sie testSetRemoverePeatElement () -Konsole aus, um das Ergebnis auszugeben
TestsetRemoverpeatElement
Sammelns.sort: 8ms
Sammlungen.Sort -Sortier, verwenden
Führen Sie TestTreesetReMoverePeatElement () -Konsole aus, um das Ergebnis auszugeben
TestTreesetReMoverePeatElement
Sortieren Sie mit Treeset, entfernen Sie doppelte Elemente: 20 ms
Führen Sie testforloOpreMoverePeatElement () -Elsole aus, um das Ergebnis auszugeben
testforloopremoverepeatElement
Sammlung.Sort: 7 ms
Verwenden Sie eine für Schleifen zur Durchlauf der Liste und entfernen Sie doppelte Elemente: 2525 ms
PS: Hier sind einige verwandte Tools für Ihre Referenz:
Online -Entfernungstool:
http://tools.vevb.com/code/quchong
Online -Text -Wiederholungstool:
http://tools.vevb.com/aideddesign/txt_quchong
Online -Animation Demonstration einfügen/auswählen/bubble/merge/hill/Schnellsortieralgorithmus -Prozess -Tool:
http://tools.vevb.com/aideddesign/paixu_ys
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.