Este artículo describe las operaciones de clasificación y dreepatamiento de matriz implementadas por Java. Compártelo para su referencia, como sigue:
Aquí hay una demostración de Java implementando la deduplicación de la matriz y las operaciones de clasificación
El código fuente de ejemplo escrito en el artículo se basa en JDK1.6+, Junit4.8.2
java.util.Arrays.sort()
Soporte de clasificación int[] , long[] , short[] , char[] , byte[] , float[] , double[] , Object[]
El fragmento del código de muestra de referencia es el siguiente
// Declarar la matriz int e inicializar int [] Intarry = {5,4,7,8,2,0,1,9,3,6,10}; // Ordenar las matrices de matriz intCódigo fuente de la clase de prueba de Junit:
paquete com.gjnote.test.array; import java.util.arrays; import org.junit.test; public class testArraysort {// declara la matriz int e inicializar el int [] intarry = {5,4,7,7,8,2,0,1,9,9,3,6,10};@testpublic Void test () {/// clasificar la intraudación int Arrays.sort (Intarry); para (int i = 0; i <información de información; i ++) {System.out.println (Intarry [i]);} System.out.println (Arrays.ToString (Intarry));}}}Salida de consola
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()
La comparación de objetos se realiza implementando el método compare interna
El fragmento del código de muestra es el siguiente
/*** use collections.sort (list, comparator () {});*Método recomendado para clasificar las matrices de lista*/public void CollectionsSortelement1 (List List) {Collections.sort (List, New Comparator () {@OverridePublic int Compare (String O1, String O2) {// Ajustar el orden de los objetos de comparación según las necesidades de clasificación real. (o2) .compareto (o1);}});}Java implementa la deduplicación de la lista
Método 1: Use para el recorrido de bucle para eliminar elementos duplicados en la lista
El fragmento de código es el siguiente
Lista TempList = new ArrayList (); // Eliminar elementos duplicados de la lista original para (String String: Originallist) {if (! TempList.Contains (String)) {TempList.add (String);}}Método 2: use Set para deduplicar
El fragmento de código es el siguiente
// set usa la singularidad del elemento set y deduplicate set set = new Hashset (Originallist); List TempList = New ArrayList (SET);
Método 3: Use TreeSet para eliminar elementos duplicados
TreeSet TreeSet = New TreeSet (OriginAlstist); ListTempList = new ArrayList (); TempList.addall (TreeSet); // TreeSet La clasificación predeterminada es el orden ascendente, agregue si el orden inverso se requiere de acuerdo con la situación real. Colección.reverse (Templist);
Java implementa el dreepato de la lista después de clasificar
Junit Test List Deduplication y Ordening Fuente Código
paquete 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 java.util.treeset; import org.junit.test;/*** Test Class*Lista de la matriz de elementos Heavy Sort ** @Version 1.0*@author www.gjnote.com **/public class testListArrayArsort {private listOrigInList = null; @bebeforepublic Public setUp () Excepción {OriginAllist = new ArostList (); For (inti i = 10000; I> 0; {Originallist.Add ("Elemento" + i); // Agregar el elemento de repetición (i % 2 == 0) {OriginAllist.Add ("Element" + i);}}}/*** Elemento de lista de salida*@param list*/private void outputList (list list) {for (int i = 0; i <list.size (); i ++) {System.out.println(list.get(i));}}/*** Use Collections.sort(list, Comparator(){});* Recommended sorting method*/private void collectionsSortElement(List list) {long start = System.currentTimeMillis();Collections.sort(list, new Comparator() {@Overridepublic int compare(String o1, String o2) {// Ajuste el orden de los objetos de comparación de acuerdo con la clasificación real debe devolverse o2.compareto (o1);}}); // outputList (TempList); system.out.println ("colección.sort:" + (system.currentTimemillis () - inicio) + "ms");}/*** Test to Usation for Loop trasversal to Eliminar elements duplication elements duplication elements duplication elements duplication duplication duplication duplication elements Void testForlooproMoverEpeatElement () {System.out.println ("testforLooproMoverEpeatElement"); long start = System.CurrentTimEmillis (); List TempList = New ArrayList (); // Eliminar elementos duplicado para (String String: Originallist) {if (! TempList.Contains (String)) {TempList.Add (String);}} // clasifica las colecciones Sortelement (templist); // outputList (templist); system.out.out (sort de colecciones CollectionSsortelement A para Agry Aff Aft Affe Aff Aff Affo Aff Aff Aff. Traverse Lista y eliminar elementos duplicados: " + (System.CurrentTimemillis () - inicio) +" MS ");}/*** Test para usar Set para deduplicar; * Use collectss.sort (list, comparator () {}); Sort **/@testPublic void testSetReMovereAteAtElement () {system.out.println ("testSetRemovereAteElement"); long start = system.currentTimemillis (); // ordene primero (valor teórico: clasificar primero y luego la deduplicación será más eficiente que la clasificación posterior) CollectionsSortelement Ordenar el tiempo de ejecución //CollectionsSortelement(templist) ;//outputList(tempplist) ;Sysystem.out.println("Collections.sort sort, use establecer para deduplicar: " + (system.currententTimemillis () - inicio) +" ms ");}/*** Test Use Use TreeSet para eliminar los elementos dupplicados*Sort OR VELEVEDS.EREVELEDS. vacío testTreeSEtrErMoverePeatElement () {system.out.println ("testTreeSEtrErTeMoverEteAtElement"); Long Start = System.CurrentTimEmillis (); TreeSettreeSet = New TreeSet (Originallist); listTempList = new ArrayList (); TempList.addall (TreeSet); // TreeSet El orden predeterminado es el orden ascendente, agregue si necesita revertir la situación real de acuerdo con la situación real. Colección.reverse (TempList); // outputList (TempList); System.out.println ("Ordena con TreeSet, elimina los elementos duplicados:" + (System.CurrentTimemillis () - inicio) + "MS");}@testPublic Void testMethods () {// outigeList (originalist); // Lista de listas Método recomendado para la deduplicación Deduplicación Deduplicación para deduplication ( testSetReMovereAteAtElement (); // 14MstestTreeSEtremovereEteeTelement (); // 20ms // testForLooproMoverePeatElement (); // 2525ms}}Ejecutar la consola testSetReMovereAteAtElement () para generar el resultado
TestSetRemoverEpeatElement
Colección.sort: 8ms
Colección.sort sort, use establecido para deduplicar: 14ms
Ejecutar la consola TestTreeSEtremoverePeatElement () para generar el resultado
testtreeStremoverePeatElement
Ordene con TreeSet, elimine los elementos duplicados: 20 ms
Ejecutar la consola testforLooproMoverePeatElement () para generar el resultado
testforlooproverepeatelement
Colección.sort: 7ms
Use un bucle for para recorrer la lista, elimine los elementos duplicados: 2525 ms
PD: Aquí hay algunas herramientas relacionadas para su referencia:
Herramienta de eliminación en línea:
http://tools.vevb.com/code/quchong
Herramienta de repetición de texto en línea:
http://tools.vevb.com/aideddesign/txt_quchong
Demostración de animación en línea Insertar/Select/Bubble/Merge/Hill/Quick Sorting Algorithm Tool Tool:
http://tools.vevb.com/aideddesign/paixu_ys
Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.