Collections.sort() en Java con ejemplos

El método java.util.Collections.sort() está presente en la clase java.util.Collections. Se utiliza para ordenar los elementos presentes en la lista especificada de Colección en orden ascendente.
Funciona de manera similar al método java.util.Arrays.sort() , pero es mejor, ya que puede ordenar los elementos de Array, así como la lista vinculada, la cola y muchos más presentes en él.

public static void sort(List myList)

myList : A List type object we want to sort.

This method doesn't return anything

Ejemplo:


Let us suppose that our list contains
{"Geeks For Geeks", "Friends", "Dear", "Is", "Superb"}

After using Collection.sort(), we obtain a sorted list as
{"Dear", "Friends", "Geeks For Geeks", "Is", "Superb"}

Ordenar una ArrayList en orden ascendente

// Java program to demonstrate working of Collections.sort()
import java.util.*;
  
public class Collectionsorting
{
    public static void main(String[] args)
    {
        // Create a list of strings
        ArrayList<String> al = new ArrayList<String>();
        al.add("Geeks For Geeks");
        al.add("Friends");
        al.add("Dear");
        al.add("Is");
        al.add("Superb");
  
        /* Collections.sort method is sorting the
        elements of ArrayList in ascending order. */
        Collections.sort(al);
  
        // Let us print the sorted list
        System.out.println("List after the use of" +
                           " Collection.sort() :\n" + al);
    }
}

Producción:

List after the use of Collection.sort() :
[Dear, Friends, Geeks For Geeks, Is, Superb]

 
Ordenar una ArrayList en orden descendente

// Java program to demonstrate working of Collections.sort()
// to descending order.
import java.util.*;
  
public class Collectionsorting
{
    public static void main(String[] args)
    {
        // Create a list of strings
        ArrayList<String> al = new ArrayList<String>();
        al.add("Geeks For Geeks");
        al.add("Friends");
        al.add("Dear");
        al.add("Is");
        al.add("Superb");
  
        /* Collections.sort method is sorting the
        elements of ArrayList in ascending order. */
        Collections.sort(al, Collections.reverseOrder());
  
        // Let us print the sorted list
        System.out.println("List after the use of" +
                           " Collection.sort() :\n" + al);
    }
}

Producción:

List after the use of Collection.sort() :
[Superb, Is, Geeks For Geeks, Friends, Dear]

Ordenar una ArrayList según los criterios definidos por el usuario.
Podemos usar Comparator Interface para este propósito.

// Java program to demonstrate working of Comparator
// interface and Collections.sort() to sort according
// to user defined criteria.
import java.util.*;
import java.lang.*;
import java.io.*;
  
// A class to represent a student.
class Student
{
    int rollno;
    String name, address;
  
    // Constructor
    public Student(int rollno, String name,
                               String address)
    {
        this.rollno = rollno;
        this.name = name;
        this.address = address;
    }
  
    // Used to print student details in main()
    public String toString()
    {
        return this.rollno + " " + this.name +
                           " " + this.address;
    }
}
  
class Sortbyroll implements Comparator<Student>
{
    // Used for sorting in ascending order of
    // roll number
    public int compare(Student a, Student b)
    {
        return a.rollno - b.rollno;
    }
}
  
// Driver class
class Main
{
    public static void main (String[] args)
    {
        ArrayList<Student> ar = new ArrayList<Student>();
        ar.add(new Student(111, "bbbb", "london"));
        ar.add(new Student(131, "aaaa", "nyc"));
        ar.add(new Student(121, "cccc", "jaipur"));
  
        System.out.println("Unsorted");
        for (int i=0; i<ar.size(); i++)
            System.out.println(ar.get(i));
  
        Collections.sort(ar, new Sortbyroll());
  
        System.out.println("\nSorted by rollno");
        for (int i=0; i<ar.size(); i++)
            System.out.println(ar.get(i));
    }
}

Producción :

Unsorted
111 bbbb london
131 aaaa nyc
121 cccc jaipur

Sorted by rollno
111 bbbb london
121 cccc jaipur
131 aaaa nyc

Arrays.sort() vs Collections.sort()
Arrays.sort funciona para arrays que también pueden ser de tipo de datos primitivo. Colecciones .sort() funciona para objetos Colecciones como ArrayList , LinkedList , etc.

Podemos usar Collections.sort() para ordenar una array después de crear una ArrayList de elementos de array dados.

java-collection-framework-fundamentals-self-paced

// Using Collections.sort() to sort an array
import java.util.*;
public class Collectionsort
{
    public static void main(String[] args)
    {
        // create an array of string objs
        String domains[] = {"Practice", "Geeks",
                             "Code", "Quiz"};
  
        // Here we are making a list named as Collist
        List colList =
            new ArrayList(Arrays.asList(domains));
  
        // Collection.sort() method is used here
        // to sort the list elements.
        Collections.sort(colList);
  
        // Let us print the sorted list
        System.out.println("List after the use of" +
                           " Collection.sort()  :\n" +
                           colList);
    }
}

Producción:

List after the use of Collection.sort()  :
[Code, Geeks, Practice, Quiz]

Este artículo es una contribución de Mohit Gupta . Se desea que el artículo sea útil para los estimados Geeks.
Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *