Conjunto y lista

Anonim

Diferencia entre la lista de matrices y la lista enlazada

Antes de entrar en las diferencias reales, ¿vamos a saber cuáles son realmente?

¿Qué es un conjunto?

Hemos encontrado el concepto de Conjunto en matemáticas y el Conjunto aquí más o menos significa lo mismo. Sí, es una colección de elementos y, en la mayoría de los casos, una colección de elementos similares. Puede intentar agregar estos elementos a un Conjunto e intentar imprimir para comprender cómo se almacena realmente.

Entrada a un conjunto: 20, 50, 10, 30.

En realidad se almacena en un conjunto como 10, 20, 30, 50.

Los elementos se ordenan aquí y no se almacenan en su orden de inserción. Esta es una de las características de Set que siempre ordena los elementos antes de almacenarlos y, por supuesto, hay excepciones y uno de ellos es el LinkedhashSet ya que mantiene el orden de inserción de los elementos.

En términos informáticos, el Conjunto incluye algunas propiedades adicionales, como Métodos y Herencia. Los métodos son como las funciones y realizan ciertas tareas como agregar, eliminar o iterar a través del conjunto de elementos. La mayoría de nosotros somos conocidos del término Herencia y significa lo mismo aquí. Sí, podemos heredar un método de su colección, de modo que se puede utilizar con la interfaz de conjunto. Nuevamente estamos hablando de un nuevo término, es decir, la Interfaz de conjunto, y no es más que todo el conjunto de elementos, incluidos los Métodos.

¿Cómo implementarlo?

Solo para una mejor comprensión, hemos representado un conjunto con su sintaxis. A partir de la siguiente sintaxis, puede identificar los diferentes tipos de conjuntos, como HashSet y TreeSet.

import java.util. *;

clase pública setexample {

Vacío estático público principal (cadena args []) {

cuenta int [] = {34, 22,10,60,30,22} {25, 17, 76, 12, 88, 57};

Conjunto set = new HashSet();

tratar {

para (int i = 0; i <5; i ++) {

set.add (cuenta [i]);

}

System.out.println (conjunto);

TreeSet sortedSeteg = nuevo TreeSet(conjunto);

System.out.println ("Aquí tenemos la salida ordenada:");

System.out.println (sortedSeteg);

System.out.println (“Mire el primer elemento:“ + (Integer) sortedSet.first ());

System.out.println (“Mire el último elemento:“ + (Integer) sortedSet.last ());

}

captura (excepción e) {}

}

}

La salida del código anterior es la siguiente.

[25, 17, 76, 12, 88] Aquí tenemos la salida ordenada: [12, 17, 25, 76, 88] Mira el primer elemento: 12 Mira el último elemento: 88

¿Qué es la lista?

Una Lista extiende la Colección de manera similar a como lo hizo un Conjunto, pero mantiene el orden de inserción. Intenta agregar los siguientes nombres a una lista y ver cómo se le agrega.

La entrada a una lista: John, Nancy, Mary, Alice.

Cómo se almacena en una lista: John, Nancy, Mary, Alice.

Apenas note el orden en que se insertan. Puede identificar que ‘John ​​'es el primer elemento en la entrada y en la salida y va seguido del mismo orden en que se insertan los nombres. Incluso podemos considerar esta una de las principales propiedades de la lista.

¿Cómo implementarlo?

Veamos algunos de los métodos de List como ArrayList y LinkedList en la siguiente sintaxis.

import java.util. *; clase pública Collectionssample {

public static void main (String [] args) {

Listar a1 = new ArrayList (); a1.add ("Juan"); a1.add ("Nancy"); a1.add ("María"); a1.add ("Alicia"); System.out.println ("Los elementos de ArrayList son"); System.out.print (“ t” + a1);

List l1 = new LinkedList (); l1.add ("Silvia"); l1.add ("Arjun"); l1.add ("Deepika"); l1.add ("Susan"); System.out.println (); System.out.println ("LinkedList Elements are"); System.out.print (“ t” + l1); }}

La salida de la sintaxis anterior es la siguiente.

Los elementos de ArrayList son

[John, Nancy, Mary, Alice]

Elementos de LinkedList

[Silvia, Arjun, Deepika, Susan]

Es muy claro, a partir del código anterior, que tanto el ArrayList como el LinkedList mantienen el orden de inserción.

¿Cómo difieren?

  • Métodos y Descripciones:

El Conjunto y la Lista tienen sus propios métodos y veamos algunos de ellos aquí.

S.No Set - Métodos Lista - Métodos
1. añadir() - Es para agregar objetos a una colección. void add (int index, Object obj) - Agrega el objeto "obj" al "índice" especificado de la lista de invocación y se asegura de que no se sobrescriba ningún elemento desplazando los elementos anteriores.
2. claro() - Es para eliminar objetos de una colección. AddAll booleano (índice int, Colección c) - Agrega la colección completa "c" a la lista de invocación y en el "índice" especificado. También asegura que no se sobrescriban elementos. También podemos verificar la corrección de su funcionamiento mediante el examen del valor de retorno. Devuelve "verdadero" si el cambio tiene éxito de lo contrario, devuelve un valor "falso".
3. contiene () - Es para comprobar si el Conjunto contiene un determinado objeto en él. Devuelve un valor "verdadero" si el objeto está presente en el conjunto. Objeto get (int index) - Devuelve el elemento u objeto en el ‘índice’ especificado.
4. esta vacio() - Es para determinar si la colección ayuda ya que no hay elementos en ella. Devuelve un valor "verdadero" si no hay ningún elemento. int lastIndexOf (objeto obj) - Funciona similar al reverso de la índice de() Método. Devuelve la última aparición del Objeto especificado "obj" y se devuelve un valor "1" si no hay ningún objeto de ese tipo en la lista. Por lo tanto, también puede ser utilizado como contiene () Método de la interfaz de conjunto.
6. retirar() - Es eliminar un elemento de una colección especificándolo como un parámetro para el método. ListIterator listIterator () - Devuelve un iterador al índice inicial de la Lista.
7. tamaño() - Es contar el número de objetos o elementos que tiene una colección. ListIterator listIterator (índice int) - Ayuda a iterar a través de la Lista de invocación a partir del ‘índice’ especificado.
8. Objeto eliminar (índice int) - Borra el objeto en el ‘índice’ especificado y devuelve el elemento eliminado como resultado. También disminuye los índices de la lista resultante para reflejar la eliminación.
9. Conjunto de objetos (índice int, objeto obj) - Es para asignar el objeto 'obj' a la lista de invocación en el 'índice' especificado.
10. Lista de sublistas (int inicio, int fin) - Es para incluir los objetos desde el índice "inicio" hasta el índice "final" en la lista que ha invocado el Método.
  • Mantenimiento de la orden de inserción:

El Conjunto nunca mantiene el orden de los elementos en los que se insertan en él, mientras que la Lista lo mantiene. Hay una excepción a esta regla para LinkedHashSet ya que mantiene el orden de inserción, pero el otro conjunto, como HashSet y TreeSet, ordena los elementos antes de almacenarlo. Lo mismo se describe con ejemplos a continuación.

Conjunto Entrada: Gato, Muñeca, Manzana.

Almacenado como: manzana, gato, muñeca.

Entrada de lista: gato, muñeca, manzana.

Almacenado como: Gato, Muñeca, Manzana.

  • La presencia de duplicados:

Un conjunto nunca permite duplicados, mientras que una lista lo permite. Si se debe agregar un valor duplicado a una lista, se sobrescribe. Mira las muestras para los duplicados de conjunto y lista.

Ajuste de entrada: 10, 20, 20, 50.

Almacenado como: 10, 20, 50.

Entrada de lista: 10, 20, 20, 50.

Almacenado como: 10, 20, 20, 50.

  • Valores nulos:

Un Conjunto solo puede tener un valor nulo, mientras que una Lista puede tener más de un valor nulo y no está restringido a ningún número.

Establecer entrada: nulo, nulo, hombre, perro, plano.

Almacenado como: nulo, perro, hombre, plano.

Entrada de lista: nulo, nulo, hombre, perro, plano.

Almacenado como: nulo, nulo, hombre, perro, plano.

  • Uso de Iterator & ListIterator:

El método Iterator funciona bien con Set y List mientras que el método ListIterator solo funciona con List. El ListIterator se puede usar para avanzar y retroceder a través de la Lista.

  • La presencia de Legacy Class:

El Conjunto no tiene clase heredada, mientras que la interfaz de la Lista tiene un legado llamado "vector". Un vector utiliza la interfaz de lista y, por lo tanto, mantiene el orden de inserción. Debido a los esfuerzos de sincronización, el rendimiento del vector en adiciones, eliminaciones y actualizaciones es un poco más lento.

  • Implementaciones:

Algunas de las implementaciones de Set son HashSet, LinkedHashSet y TreeSet. Algunas de las implementaciones de List incluyen ArrayList y LinkedList.

¿Cuándo usar Set & List?

El uso de Set and List depende únicamente del requisito de mantenimiento del pedido de inserción. Como hemos aprendido que un Set nunca mantiene el orden de inserción, se puede usar cuando el orden es de menor importancia. De manera similar, use la Lista cuando también necesite mantener la secuencia de inserción.

Diferencias en una forma tabular:

S.No Diferencias en Conjunto Lista
1. Orden de insercion Mantiene el orden de inserción. El primer insertado permanece en primer lugar y así sucesivamente, independientemente de su valor. Nunca mantiene el orden de inserción.
2. Métodos Utiliza los métodos como add (), clear (), contiene (), isEmpty (), remove () y size (). Utiliza los métodos como add (), addAll (), get (), lastIndexOf (), ListIterator () con o sin parámetro, remove (), set () y subList ().
3. Duplicados Nunca permite duplicados y en el caso de tales apariencias, el valor se sobrescribe. Permite duplicados.
4. Valores nulos Solo puede tener un valor nulo como máximo. Puede tener cualquier número de valores nulos.
5. Uso de Iterator () y listIterator () Utiliza solo el método iterador (). Utiliza tanto el iterador () como el listIterator ().
6. Presencia de Clase Legacy No hay clase de legado. Tiene como clase legada llamada como vector.
7. Implementaciones Algunas de las implementaciones de la interfaz Set son HashSet, LinkedHashSet y Tree Set. Algunas de las implementaciones de la interfaz de List son LinkedList y ArrayList.

Esperanza, hemos incluido todas las diferencias posibles entre el Conjunto y la Lista. Si cree que nos hemos perdido algo, háganoslo saber.