logo

Colecciones en Java

  1. Marco de colección de Java
  2. Jerarquía del marco de recopilación
  3. Interfaz de colección
  4. Interfaz iteradora

El Colección en Java es un marco que proporciona una arquitectura para almacenar y manipular el grupo de objetos.

Las colecciones de Java pueden realizar todas las operaciones que realiza con datos, como buscar, ordenar, insertar, manipular y eliminar.

Colección Java significa una única unidad de objetos. El marco de la Colección Java proporciona muchas interfaces (Set, List, Queue, Deque) y clases ( Lista de arreglo , vectores, Lista enlazada , Cola de prioridad , HashSet, LinkedHashSet, TreeSet).

¿Qué es la colección en Java?

Una Colección representa una única unidad de objetos, es decir, un grupo.

¿Qué es un marco en Java?

  • Proporciona arquitectura lista para usar.
  • Representa un conjunto de clases e interfaces.
  • Es opcional.

¿Qué es el marco de colección?

El marco de la Colección representa una arquitectura unificada para almacenar y manipular un grupo de objetos. Tiene:

  1. Interfaces y sus implementaciones, es decir, clases.
  2. Algoritmo

¿Sabes?
  • ¿Cuáles son las dos formas de iterar los elementos de una colección?
  • ¿Cuál es la diferencia entre las clases ArrayList y LinkedList en el marco de colección?
  • ¿Cuál es la diferencia entre las clases ArrayList y Vector en el marco de colección?
  • ¿Cuál es la diferencia entre las clases HashSet y HashMap en el marco de colección?
  • ¿Cuál es la diferencia entre la clase HashMap y Hashtable?
  • ¿Cuál es la diferencia entre la interfaz Iterator y Enumeration en el marco de colección?
  • ¿Cómo podemos ordenar los elementos de un objeto? ¿Cuál es la diferencia entre las interfaces Comparable y Comparator?
  • ¿Qué significa el método hashcode()?
  • ¿Cuál es la diferencia entre la colección Java y las colecciones Java?

Jerarquía del marco de recopilación

Veamos la jerarquía del marco de la Colección. El java.util El paquete contiene todos los clases y interfaces para el marco de la Colección.

Jerarquía del marco de la colección Java

Interfaz de métodos de recopilación

Hay muchos métodos declarados en la interfaz de la Colección. Son los siguientes:

No.MétodoDescripción
1adición booleana pública (E e)Se utiliza para insertar un elemento en esta colección.
2addAll booleano público (Colección c)Se utiliza para insertar los elementos de la colección especificados en la colección que invoca.
3eliminación booleana pública (elemento objeto)Se utiliza para eliminar un elemento de la colección.
4removeAll booleano público (Colección c)Se utiliza para eliminar todos los elementos de la colección especificada de la colección que invoca.
5removeIf booleano predeterminado (filtro de predicado)Se utiliza para eliminar todos los elementos de la colección que satisfacen el predicado especificado.
6booleano público retener todo (colección c)Se utiliza para eliminar todos los elementos de la colección que invoca, excepto la colección especificada.
7tamaño int público()Devuelve el número total de elementos de la colección.
8vacío público claro()Elimina el número total de elementos de la colección.
9booleano público contiene (elemento objeto)Se utiliza para buscar un elemento.
10booleano público contiene todo (colección c)Se utiliza para buscar la colección especificada en la colección.
11iterador público iterador()Devuelve un iterador.
12Objeto público[] toArray()Convierte la colección en una matriz.
13pública T[] aArray(T[] a)Convierte la colección en una matriz. Aquí, el tipo de tiempo de ejecución de la matriz devuelta es el de la matriz especificada.
14booleano público está vacío ()Comprueba si la colección está vacía.
15flujo predeterminado paraleloStream()Devuelve un Stream posiblemente paralelo con la colección como fuente.
16flujo de flujo predeterminado ()Devuelve un Stream secuencial con la colección como fuente.
17predeterminado Spliterator spliterator()Genera un Spliterator sobre los elementos especificados en la colección.
18público booleano es igual (elemento objeto)Combina dos colecciones.
19código hash int público()Devuelve el número de código hash de la colección.

Interfaz iteradora

La interfaz Iterator proporciona la posibilidad de iterar los elementos solo en dirección hacia adelante.

Métodos de interfaz Iterator

Solo hay tres métodos en la interfaz Iterator. Ellos son:

No.MétodoDescripción
1hasNext público booleano()Devuelve verdadero si el iterador tiene más elementos; de lo contrario, devuelve falso.
2Objeto público siguiente()Devuelve el elemento y mueve el puntero del cursor al siguiente elemento.
3eliminación de vacío público()Elimina los últimos elementos devueltos por el iterador. Es menos utilizado.

Interfaz iterable

La interfaz Iterable es la interfaz raíz de todas las clases de colección. La interfaz Collection extiende la interfaz Iterable y, por lo tanto, todas las subclases de la interfaz Collection también implementan la interfaz Iterable.

Contiene sólo un método abstracto. es decir.,

 Iterator iterator() 

Devuelve el iterador sobre los elementos de tipo T.

sqrt java matemáticas

Interfaz de colección

La interfaz de la colección es la interfaz implementada por todas las clases en el marco de la colección. Declara los métodos que tendrá cada colección. En otras palabras, podemos decir que la interfaz de la Colección construye la base de la que depende el marco de la colección.

Algunos de los métodos de la interfaz de Colección son Boolean add (Objeto obj), Boolean addAll (Colección c), void clear(), etc., que son implementados por todas las subclases de la interfaz de Colección.


Interfaz de lista

La interfaz de lista es la interfaz secundaria de la interfaz de colección. Inhibe una estructura de datos de tipo lista en la que podemos almacenar la colección ordenada de objetos. Puede tener valores duplicados.

La interfaz de lista está implementada por las clases ArrayList, LinkedList, Vector y Stack.

Para crear una instancia de la interfaz List, debemos usar:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Hay varios métodos en la interfaz Lista que se pueden usar para insertar, eliminar y acceder a los elementos de la lista.

Las clases que implementan la interfaz List se detallan a continuación.


Lista de arreglo

La clase ArrayList implementa la interfaz List. Utiliza una matriz dinámica para almacenar el elemento duplicado de diferentes tipos de datos. La clase ArrayList mantiene el orden de inserción y no está sincronizada. Se puede acceder aleatoriamente a los elementos almacenados en la clase ArrayList. Considere el siguiente ejemplo.

 import java.util.*; class TestJavaCollection1{ public static void main(String args[]){ ArrayList list=new ArrayList();//Creating arraylist list.add('Ravi');//Adding object in arraylist list.add('Vijay'); list.add('Ravi'); list.add('Ajay'); //Traversing list through Iterator Iterator itr=list.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Producción:

 Ravi Vijay Ravi Ajay 

Lista enlazada

LinkedList implementa la interfaz Colección. Utiliza una lista doblemente enlazada internamente para almacenar los elementos. Puede almacenar los elementos duplicados. Mantiene el orden de inserción y no está sincronizado. En LinkedList, la manipulación es rápida porque no se requieren cambios.

Considere el siguiente ejemplo.

 import java.util.*; public class TestJavaCollection2{ public static void main(String args[]){ LinkedList al=new LinkedList(); al.add('Ravi'); al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Producción:

 Ravi Vijay Ravi Ajay 

Vector

Vector utiliza una matriz dinámica para almacenar los elementos de datos. Es similar a ArrayList. Sin embargo, está sincronizado y contiene muchos métodos que no forman parte del marco de la Colección.

Considere el siguiente ejemplo.

 import java.util.*; public class TestJavaCollection3{ public static void main(String args[]){ Vector v=new Vector(); v.add('Ayush'); v.add('Amit'); v.add('Ashish'); v.add('Garima'); Iterator itr=v.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Producción:

 Ayush Amit Ashish Garima 

Pila

La pila es la subclase de Vector. Implementa la estructura de datos de último en entrar, primero en salir, es decir, Stack. La pila contiene todos los métodos de la clase Vector y también proporciona sus métodos como boolean push(), boolean peek(), boolean push(object o), que define sus propiedades.

Considere el siguiente ejemplo.

 import java.util.*; public class TestJavaCollection4{ public static void main(String args[]){ Stack stack = new Stack(); stack.push('Ayush'); stack.push('Garvit'); stack.push('Amit'); stack.push('Ashish'); stack.push('Garima'); stack.pop(); Iterator itr=stack.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Producción:

 Ayush Garvit Amit Ashish 

Interfaz de cola

La interfaz de cola mantiene el orden de primero en entrar, primero en salir. Se puede definir como una lista ordenada que se utiliza para contener los elementos que están a punto de procesarse. Hay varias clases como PriorityQueue, Deque y ArrayDeque que implementan la interfaz Queue.

La interfaz de cola se puede instanciar como:

 Queue q1 = new PriorityQueue(); Queue q2 = new ArrayDeque(); 

Hay varias clases que implementan la interfaz Queue, algunas de ellas se detallan a continuación.


Cola de prioridad

La clase PriorityQueue implementa la interfaz Queue. Contiene los elementos u objetos que van a ser procesados ​​según sus prioridades. PriorityQueue no permite almacenar valores nulos en la cola.

Considere el siguiente ejemplo.

 import java.util.*; public class TestJavaCollection5{ public static void main(String args[]){ PriorityQueue queue=new PriorityQueue(); queue.add('Amit Sharma'); queue.add('Vijay Raj'); queue.add('JaiShankar'); queue.add('Raj'); System.out.println('head:'+queue.element()); System.out.println('head:'+queue.peek()); System.out.println('iterating the queue elements:'); Iterator itr=queue.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } queue.remove(); queue.poll(); System.out.println('after removing two elements:'); Iterator itr2=queue.iterator(); while(itr2.hasNext()){ System.out.println(itr2.next()); } } } 

Producción:

 head:Amit Sharma head:Amit Sharma iterating the queue elements: Amit Sharma Raj JaiShankar Vijay Raj after removing two elements: Raj Vijay Raj 

y la interfaz

La interfaz Deque extiende la interfaz Queue. En Deque, podemos eliminar y agregar elementos de ambos lados. Deque representa una cola de dos extremos que nos permite realizar las operaciones en ambos extremos.

Se puede crear una instancia de Deque como:

 Deque d = new ArrayDeque(); 

ArrayDeque

La clase ArrayDeque implementa la interfaz Deque. Nos facilita el uso del Deque. A diferencia de la cola, podemos agregar o eliminar elementos de ambos extremos.

ArrayDeque es más rápido que ArrayList y Stack y no tiene restricciones de capacidad.

Considere el siguiente ejemplo.

 import java.util.*; public class TestJavaCollection6{ public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Gautam'); deque.add('Karan'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } } 

Producción:

 Gautam Karan Ajay 

Establecer interfaz

Establecer interfaz en Java está presente en el paquete java.util. Amplía la interfaz de la Colección. Representa el conjunto desordenado de elementos que no nos permite almacenar los elementos duplicados. Podemos almacenar como máximo un valor nulo en Set. Set es implementado por HashSet, LinkedHashSet y TreeSet.

Se puede crear una instancia del conjunto como:

 Set s1 = new HashSet(); Set s2 = new LinkedHashSet(); Set s3 = new TreeSet(); 

Conjunto de hash

La clase HashSet implementa Set Interface. Representa la colección que utiliza una tabla hash para almacenamiento. Hashing se utiliza para almacenar los elementos en HashSet. Contiene elementos únicos.

Considere el siguiente ejemplo.

 import java.util.*; public class TestJavaCollection7{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Producción:

 Vijay Ravi Ajay 

LinkedHashSet

La clase LinkedHashSet representa la implementación LinkedList de Set Interface. Extiende la clase HashSet e implementa la interfaz Set. Al igual que HashSet, también contiene elementos únicos. Mantiene el orden de inserción y permite elementos nulos.

Considere el siguiente ejemplo.

 import java.util.*; public class TestJavaCollection8{ public static void main(String args[]){ LinkedHashSet set=new LinkedHashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Producción:

 Ravi Vijay Ajay 

Interfaz de conjunto ordenado

SortedSet es la alternativa de la interfaz Set que proporciona un orden total de sus elementos. Los elementos del SortedSet están organizados en orden creciente (ascendente). SortedSet proporciona métodos adicionales que inhiben el orden natural de los elementos.

Se puede crear una instancia del SortedSet como:

 SortedSet set = new TreeSet(); 

Conjunto de árboles

La clase Java TreeSet implementa la interfaz Set que utiliza un árbol para el almacenamiento. Al igual que HashSet, TreeSet también contiene elementos únicos. Sin embargo, el tiempo de acceso y recuperación de TreeSet es bastante rápido. Los elementos de TreeSet se almacenan en orden ascendente.

Considere el siguiente ejemplo:

 import java.util.*; public class TestJavaCollection9{ public static void main(String args[]){ //Creating and adding elements TreeSet set=new TreeSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Producción:

 Ajay Ravi Vijay 
¿Qué vamos a aprender en Java Collections Framework?
  1. clase ArrayList
  2. Clase de lista enlazada
  3. Interfaz de lista
  4. Clase HashSet
  5. Clase LinkedHashSet
  6. Clase TreeSet
  7. clase PriorityQueue
  8. Interfaz de mapa
  9. Clase HashMap
  10. Clase LinkedHashMap
  11. Clase TreeMap
  12. clase de tabla hash
  13. Clasificación
  14. Interfaz comparable
  15. Interfaz del comparador
  16. Clase de propiedades en Java