Clase de colecciones en Java

La clase Collections es miembro de Java Collections Framework . El paquete java.util.Collections es el paquete que contiene la clase Collections. La clase de colecciones se usa básicamente con los métodos estáticos que operan en las colecciones o devuelven la colección. Todos los métodos de esta clase lanzan NullPointerException si la colección o el objeto pasado a los métodos es nulo.  

Sintaxis: Declaración

public class Collections
extends Object

Recuerde: el objeto es la clase principal de todas las clases.

Campos de clase de colecciones

La clase de colección contiene básicamente 3 campos, como se indica a continuación, que se pueden usar para devolver entidades inmutables.

  • EMPTY_LIST para obtener una Lista vacía inmutable
  • EMPTY_SET para obtener un conjunto vacío inmutable
  • EMPTY_MAPpara obtener un mapa vacío inmutable

Ahora analicemos los métodos que están presentes dentro de esta clase para que podamos implementar estas funcionalidades incorporadas más adelante en nuestro programa. A continuación se enumeran los métodos que se enumeran a continuación en un formato tabular como se muestra a continuación:

Métodos

Descripción

addAll(Colección<? extiende E> c) Se utiliza para insertar los elementos de colección especificados en la colección que invoca.
asLifoQueue​(Deque<T> deque) Este método devuelve una vista de un Deque como una cola de último en entrar, primero en salir (Lifo).
binarySearch(List<? extiende la lista Comparable>, tecla T) Este método busca la clave mediante la búsqueda binaria en la lista especificada. 
Búsqueda binaria​(Lista<? extiende T> lista, tecla T, Comparador<? super T> c) Este método busca en la lista especificada el objeto especificado utilizando el algoritmo de búsqueda binaria.
checkedCollection​(Colección<E> c, Clase<E> tipo) Este método devuelve una vista con seguridad de tipo dinámica de la colección especificada.
lista marcada (Lista <E> lista, tipo Clase <E>) Este método devuelve una vista con seguridad de tipo dinámica de la lista especificada.
checkMap​(Map<K,​V> m, Class<K> keyType, Class<V> valueType) Este método devuelve una vista con seguridad de tipo dinámica del mapa especificado.
checkNavigableMap​(NavigableMap<K,​V> m, Class<K> keyType, Class<V> valueType) Este método devuelve una vista con seguridad de tipos dinámica del mapa navegable especificado.
checkedNavigableSet​(NavigableSet<E> s, Class<E> tipo) Este método devuelve una vista con seguridad de tipos dinámica del conjunto navegable especificado.
checkedQueue​(Cola<E> cola, Clase<E> tipo) Este método devuelve una vista con seguridad de tipo dinámica de la cola especificada.
 checkSet​(Set<E> s, Class<E> type) Este método devuelve una vista con seguridad de tipo dinámica del conjunto especificado.
checkSortedMap​(SortedMap<K,​V> m, Class<K> keyType, Class<V> valueType) Este método devuelve una vista con seguridad de tipo dinámica del mapa ordenado especificado.
checkSortedSet​(SortedSet<E> s, Class<E> type) Este método devuelve una vista con seguridad de tipos dinámica del conjunto ordenado especificado.
copiar​(Lista<? super T> dest, Lista<? extiende T> src) Este método copia todos los elementos de una lista a otra.
disjunto​(Colección<?> c1, Colección<?> c2) Este método devuelve verdadero si las dos colecciones especificadas no tienen elementos en común.
enumeracion vacia() Este método devuelve una enumeración que no tiene elementos.
vacíoIterador() Este método devuelve un iterador que no tiene elementos.
 lista vacía() Este método devuelve una lista vacía (inmutable).
vaciarListaIterador() Este método devuelve un iterador de lista que no tiene elementos.
mapavacío() Este método devuelve un mapa vacío (inmutable).
vacíoNavegableMap() Este método devuelve un mapa navegable vacío (inmutable).
conjuntoNavegablevacío() Este método devuelve un conjunto navegable vacío (inmutable).
conjunto vacio() Este método devuelve un conjunto vacío (inmutable).
mapaOrdenadoVacío() Este método devuelve un mapa ordenado vacío (inmutable).
conjuntoordenadovacío() Este método devuelve un conjunto ordenado vacío (inmutable).
enumeración​(Colección<T> c) Este método devuelve una enumeración sobre la colección especificada.
llenar​(Lista<? super T> lista, T obj) Este método reemplaza todos los elementos de la lista especificada con el elemento especificado.
frecuencia​(Colección<?> c, Objeto o) Este método devuelve el número de elementos en la colección especificada igual al objeto especificado.
indexOfSubList​(List<?> origen, List<?> destino) Este método devuelve la posición inicial de la primera aparición de la lista de destino especificada dentro de la lista de origen especificada, o -1 si no existe tal aparición.
lastIndexOfSubList​(Lista<?> origen, Lista<?> destino) Este método devuelve la posición inicial de la última aparición de la lista de destino especificada dentro de la lista de origen especificada, o -1 si no existe tal aparición.
lista​(Enumeración<T> e) Este método devuelve una lista de array que contiene los elementos devueltos por la enumeración especificada en el orden en que los devuelve la enumeración.
max​(Colección<? extiende T> coll) Este método devuelve el elemento máximo de la colección dada, según el orden natural de sus elementos.
max​(Colección<? extiende T> coll, Comparator<? super T> comp) Este método devuelve el elemento máximo de la colección dada, según el orden inducido por el comparador especificado.
min​(Colección<? extiende T> coll) Este método devuelve el elemento mínimo de la colección dada, según el orden natural de sus elementos.
min​(Colección<? extiende T> coll, Comparator<? super T> comp) Este método devuelve el elemento mínimo de la colección dada, según el orden inducido por el comparador especificado.
nCopias​(int n, T o) Este método devuelve una lista inmutable que consta de n copias del objeto especificado.
newSetFromMap​(Mapa<E,​Booleano> mapa) Este método devuelve un conjunto respaldado por el mapa especificado.
replaceAll​(List<T> list, T oldVal, T newVal) Este método reemplaza todas las apariciones de un valor especificado en una lista con otro.
inversa​(Lista<?> lista) Este método invierte el orden de los elementos en la lista especificada
orden inverso() Este método devuelve un comparador que impone el orden inverso al natural en una colección de objetos que implementan la interfaz Comparable.
 orden inverso​(Comparador<T> cmp) Este método devuelve un comparador que impone el orden inverso del comparador especificado.
rotar (Lista<?> lista, distancia int) Este método rota los elementos en la lista especificada por la distancia especificada.
barajar​(Lista<?> lista) Este método permuta aleatoriamente la lista especificada utilizando una fuente predeterminada de aleatoriedad.
barajar​(Lista<?> lista, Random rnd) Este método permuta aleatoriamente la lista especificada utilizando la fuente de aleatoriedad especificada.
singletonMap​(clave K, valor V) Este método devuelve un mapa inmutable, asignando solo la clave especificada al valor especificado.
singleton​(To) Este método devuelve un conjunto inmutable que contiene solo el objeto especificado.
singletonList​(Hasta) Este método devuelve una lista inmutable que contiene solo el objeto especificado.
ordenar​(Lista<T> lista) Este método ordena la lista especificada en orden ascendente, según el orden natural de sus elementos.
ordenar​(Lista<T> lista, Comparador<? super T> c) Este método ordena la lista especificada según el orden inducido por el comparador especificado.
intercambiar (Lista<?> lista, int i, int j) Este método intercambia los elementos en las posiciones especificadas en la lista especificada.
colección sincronizada​(Colección<T> c) Este método devuelve una colección sincronizada (segura para subprocesos) respaldada por la colección especificada.
lista sincronizada​(Lista<T> lista) Este método devuelve una lista sincronizada (segura para subprocesos) respaldada por la lista especificada.
Mapa sincronizado​(Mapa<K,​V> m) Este método devuelve un mapa sincronizado (seguro para subprocesos) respaldado por el mapa especificado.
sincronizadoNavigableMap​(NavigableMap<K,​V> m) Este método devuelve un mapa navegable sincronizado (seguro para subprocesos) respaldado por el mapa navegable especificado.
conjuntoNavigable sincronizado​(ConjuntoNavigable<T> s) Este método devuelve un conjunto navegable sincronizado (seguro para subprocesos) respaldado por el conjunto navegable especificado.
 conjunto sincronizado​(Conjunto<T> s) Este método devuelve un conjunto sincronizado (seguro para subprocesos) respaldado por el conjunto especificado.
MapaOrdenadoSincronizado​(MapaOrdenado<K,​V> m) Este método devuelve un mapa ordenado sincronizado (seguro para subprocesos) respaldado por el mapa ordenado especificado.
conjuntoordenado sincronizado​(ConjuntosOrdenados<T> s) Este método devuelve un conjunto ordenado sincronizado (seguro para subprocesos) respaldado por el conjunto ordenado especificado.
nomodificableCollection​(Colección<? extiende T> c) Este método devuelve una vista no modificable de la colección especificada.
nomodificableList​(Lista<? extiende T> lista) Este método devuelve una vista no modificable de la lista especificada.
unmodificableNavigableMap​(NavigableMap<K,​? extiende V> m) Este método devuelve una vista no modificable del mapa navegable especificado.
unmodificableNavigableSet​(NavigableSet<T> s) Este método devuelve una vista no modificable del conjunto navegable especificado.
unmodificableSet​(Set<? extiende T> s) Este método devuelve una vista no modificable del conjunto especificado.
nomodificableSortedMap​(SortedMap<K,​? extiende V> m) Este método devuelve una vista no modificable del mapa ordenado especificado.
unmodificableSortedSet​(SortedSet<T> s) Este método devuelve una vista no modificable del conjunto ordenado especificado.

Ahora, hemos terminado con la lista de todos los métodos, por lo que ahora tenemos una leve pista con nosotros para percibir cuán importantes son estos métodos cuando se piensa en una perspectiva de programación global. Los métodos importantes y de uso frecuente al escribir código optimizado, como verá estos métodos de alguna manera en casi todos los códigos optimizados de Java debido al uso estragos de la clase Collections en Java. Así que aquí, más probablemente que en cualquier otra clase, no solo implementaremos el método, sino que también discutiremos las operaciones que se pueden realizar para que uno pueda tener claridad conceptual y un dominio sólido al implementar el mismo. Las operaciones de las que hablaremos son las siguientes:

  • Adición de elementos a las Colecciones 
  • Ordenar una colección
  • Buscar en una colección
  • Copiar elementos
  • Colección Disjunta

Operación 1: agregar elementos al objeto de clase Collections 

El método addAll() de la clase java.util.Collections se usa para agregar todos los elementos especificados a la colección especificada. Los elementos que se agregarán se pueden especificar individualmente o como una array.

Ejemplo 

Java

// Java Program to Demonstrate Adding Elements
// Using addAll() method
 
// Importing required classes
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating a list
        // Declaring object of string type
        List<String> items = new ArrayList<>();
 
        // Adding elements (items) to the list
        items.add("Shoes");
        items.add("Toys");
 
        // Add one or more elements
        Collections.addAll(items, "Fruits", "Bat", "Ball");
 
        // Printing the list contents
        for (int i = 0; i < items.size(); i++) {
            System.out.print(items.get(i) + " ");
        }
    }
}
Producción

Shoes Toys Fruits Bat Ball 

 Operación 2: ordenar una colección

java.util.Collections.sort() se utiliza para ordenar los elementos presentes en la lista especificada de Colección en orden ascendente. java.util.Collections.reverseOrder() se usa para ordenar en orden descendente. 

Ejemplo

Java

// Java program to demonstrate sorting
// a Collections using sort() method
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
// Main Class
// SortingCollectionExample
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating a list
        // Declaring object of string type
        List<String> items = new ArrayList<>();
 
        // Adding elements to the list
        // using add() method
        items.add("Shoes");
        items.add("Toys");
 
        // Adding one or more elements using addAll()
        Collections.addAll(items, "Fruits", "Bat", "Mouse");
 
        // Sorting according to default ordering
        // using sort() method
        Collections.sort(items);
 
        // Printing the elements
        for (int i = 0; i < items.size(); i++) {
            System.out.print(items.get(i) + " ");
        }
 
        System.out.println();
 
        // Sorting according to reverse ordering
        Collections.sort(items, Collections.reverseOrder());
 
        // Printing the reverse order
        for (int i = 0; i < items.size(); i++) {
            System.out.print(items.get(i) + " ");
        }
    }
}
Producción

Bat Fruits Mouse Shoes Toys 
Toys Shoes Mouse Fruits Bat 

Operación 3: Búsqueda en una colección

El método java.util.Collections.binarySearch() devuelve la posición de un objeto en una lista ordenada. Para usar este método, la lista debe ordenarse en orden ascendente, de lo contrario, el resultado devuelto por el método será incorrecto. Si el elemento existe en la lista, el método devolverá la posición del elemento en la lista ordenada; de lo contrario, el resultado devuelto por el método sería el – (punto de inserción donde el elemento debería haber estado presente si existiera) -1)

Ejemplo

Java

// Java Program to Demonstrate Binary Search
// Using Collections.binarySearch()
 
// Importing required classes
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
// Main class
// BinarySearchOnACollection
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating a List
        // Declaring object of string type
        List<String> items = new ArrayList<>();
 
        // Adding elements to object
        // using add() method
        items.add("Shoes");
        items.add("Toys");
        items.add("Horse");
        items.add("Ball");
        items.add("Grapes");
 
        // Sort the List
        Collections.sort(items);
 
        // BinarySearch on the List
        System.out.println(
            "The index of Horse is "
            + Collections.binarySearch(items, "Horse"));
 
        // BinarySearch on the List
        System.out.println(
            "The index of Dog is "
            + Collections.binarySearch(items, "Dog"));
    }
}
Producción

The index of Horse is 2
The index of Dog is -2

Operación 4: Copiar Elementos

El método copy() de la clase java.util.Collections se usa para copiar todos los elementos de una lista a otra. Después de la operación, el índice de cada elemento copiado en la lista de destino será idéntico a su índice en la lista de origen. La lista de destino debe ser al menos tan larga como la lista de origen. Si es más largo, los elementos restantes de la lista de destinos no se ven afectados.

Ejemplo

Java

// Java Program to Demonstrate Copying Elements
// Using copy() method
 
// Importing required classes
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
// Main class
// CopyOneCollectionToAnother
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Create destination list
        List<String> destination_List = new ArrayList<>();
 
        // Add elements
        destination_List.add("Shoes");
        destination_List.add("Toys");
        destination_List.add("Horse");
        destination_List.add("Tiger");
 
        // Print the elements
        System.out.println(
            "The Original Destination list is ");
 
        for (int i = 0; i < destination_List.size(); i++) {
            System.out.print(destination_List.get(i) + " ");
        }
        System.out.println();
 
        // Create source list
        List<String> source_List = new ArrayList<>();
 
        // Add elements
        source_List.add("Bat");
        source_List.add("Frog");
        source_List.add("Lion");
 
        // Copy the elements from source to destination
        Collections.copy(destination_List, source_List);
 
        // Printing the modified list
        System.out.println(
            "The Destination List After copying is ");
 
        for (int i = 0; i < destination_List.size(); i++) {
            System.out.print(destination_List.get(i) + " ");
        }
    }
}
Producción

The Original Destination list is 
Shoes Toys Horse Tiger 
The Destination List After copying is 
Bat Frog Lion Tiger 

Operación 5: Colección Disjunta

java.util.Collections.disjoint() se usa para verificar si dos colecciones específicas son independientes o no. Más formalmente, dos colecciones son disjuntas si no tienen elementos en común. Devuelve verdadero si las dos colecciones no tienen ningún elemento en común. 

Ejemplo

Java

// Java Program to Illustrate Working of Disjoint Function
 
// Importing required classes
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
// Main class
// DisjointCollectionsExample
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Create list1
        List<String> list1 = new ArrayList<>();
 
        // Add elements to list1
        list1.add("Shoes");
        list1.add("Toys");
        list1.add("Horse");
        list1.add("Tiger");
 
        // Create list2
        List<String> list2 = new ArrayList<>();
 
        // Add elements to list2
        list2.add("Bat");
        list2.add("Frog");
        list2.add("Lion");
 
        // Check if disjoint or not
        System.out.println(
            Collections.disjoint(list1, list2));
    }
}
Producción

true

Publicación traducida automáticamente

Artículo escrito por lavishgarg26 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 *