Diferencia entre set y list

Diferencia entre set y list

Diferencia entre la lista de matrices y la lista vinculada

Antes de entrar en las diferencias reales, sepamos cuáles son realmente?

¿Qué es un set??

Nos hemos encontrado con el concepto de set en matemáticas y el set 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 set como 10, 20, 30, 50.

Los elementos se clasifican aquí y no se almacenan en su orden de inserción. Esta es una de las características de SET que siempre clasifica los elementos antes de almacenar y, por supuesto, hay excepciones y una de esas es el Linkedhashset, ya que mantiene el orden de inserción de los elementos.

En términos de la computadora, el conjunto incluye pocas propiedades adicionales, como métodos y herencia. Los métodos son como funciones y hacen ciertas tareas, como agregar, eliminar o iterando a través del conjunto de elementos. La mayoría de nosotros somos bien conocidos por el término herencia y significa lo mismo aquí. Sí, podemos heredar un método de su colección, para que pueda usarse con la interfaz establecida. Nuevamente estamos hablando de un nuevo término I.mi. la interfaz establecida, 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. De la siguiente sintaxis, puede identificar los diferentes tipos de conjuntos, como el hashset y TreeSet.

importar java.utilizar.*;

clase pública setExample

public static void main (string args [])

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

Set set = new Hashset ();

intentar

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

colocar.agregar (contar [i]);

Sistema.afuera.println (set);

TreeSet SortedSeteg = new TreeSet (SET);

Sistema.afuera.println ("Aquí tenemos la salida ordenada:");

Sistema.afuera.println (sortedSeteg);

Sistema.afuera.println ("Mira el primer elemento:"+ (Integer) Sortedset.primero());

Sistema.afuera.println ("Mira el último elemento:"+ (Integer) Sortedset.último());

Catch (excepción e)

La salida del código anterior es el 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

Que es la lista?

Una lista extiende la colección similar a cómo lo hizo un conjunto, pero mantiene el orden de inserción. Intenta agregar los siguientes nombres a una lista y ver cómo se agrega a ella.

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

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

Solo observe el orden en que se insertan.  Puede identificar que 'John' es el primer elemento en la entrada y la salida y es seguido por el mismo orden en el 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 lista, como ArrayList y LinkedList en la siguiente sintaxis.

importar java.utilizar.*;
Muestra de colecciones de clase pública

public static void main (string [] args)

Lista A1 = New ArrayList ();
A1.agregar ("John");
A1.Agregar ("Nancy");
A1.agregar ("Mary");
A1.agregar ("Alice");
Sistema.afuera.println ("Los elementos de ArrayList son");
Sistema.afuera.imprimir ("\ t" + a1);

List l1 = new LinkedList ();
L1.Agregar ("Silvia");
L1.Agregar ("Arjun");
L1.Agregar ("Deepika");
L1.agregar ("Susan");
Sistema.afuera.println ();
Sistema.afuera.println ("los elementos LinkedList son");
Sistema.afuera.imprimir ("\ t" + L1);

La salida de la sintaxis anterior es la siguiente.

Los elementos ArrayList son

[John, Nancy, Mary, Alice]

Elementos de LinkedList

[Silvia, Arjun, Deepika, Susan]

Es muy claro en el código anterior que tanto ArrayList como 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 vamos a ver a algunos de ellos aquí.

S.No Establecer - Métodos Lista - Métodos
1. agregar() - Es agregar objetos a una colección. Void add (int index, objeto obj) - Agrega el objeto 'obj' en el 'índice' especificado de la lista de invocación y se asegura de que ningún elemento se sobrescribiera cambiando los elementos anteriores.
2. claro() - Es eliminar objetos de una colección. boolean addall (int index, 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 operación examinando el valor de retorno. Devuelve 'verdadero' si el cambio es exitoso de otra manera, devuelve un valor 'falso'.
3. contiene() - Es verificar si el conjunto contiene un cierto objeto en él. Devuelve un valor 'verdadero' si el objeto está presente en el conjunto. Object get (int index) - Devuelve el elemento u objeto en el 'índice' especificado.
4. esta vacio() - Es para determinar si la colección ayuda a no tener elementos en ella. Devuelve un valor 'verdadero' si no hay elemento. int - Funciona de manera similar al reverso del índice de() Método. Devuelve la última aparición del objeto especificado 'obj' y un valor '1' se devuelve si no hay dicho objeto en la lista. Por lo tanto, también se puede usar como contiene() Método de la interfaz establecida.
6. eliminar() - Es eliminar un elemento de una colección especificando 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 (INT índice) - Ayuda a iterar a través de la lista de invocación a partir del 'índice' especificado.
8. - Objeto Remover (INT índice) - Elimina el objeto en el 'índice' especificado y devuelve el elemento eliminado como resultado. También disminuye los índices de la lista resultantes para reflejar la eliminación.
9. - Conjunto de objetos (INT index, objeto obj) - Es asignar el objeto 'obj' a la lista de invocación en el 'índice' especificado.
10. - List Sublist (int inicio, int final) - Es incluir los objetos del índice 'inicio' al í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, clasifica los elementos antes de almacenarlo. Lo mismo se describe con los ejemplos a continuación.

Colocar Entrada: gato, muñeca, manzana.

Almacenado como: Apple, Cat, Doll.

Entrada de la 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, entonces se sobrescribe. Mire las muestras para duplicados de configuración y lista.

Entrada establecida: 10, 20, 20, 50.

Almacenado como: 10, 20, 50.

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

Almacenado como: 10, 20, 20, 50.

  • Valores nulos:

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

Entrada establecida: nulo, nulo, hombre, perro, avión.

Almacenado como: nulo, perro, hombre, avión.

Entrada de la lista: nulo, nulo, hombre, perro, avión.

Almacenado como: nulo, nulo, hombre, perro, avión.

  • Uso de iterador y listiterator:

El método de iterador funciona bien con la lista y la lista, mientras que el método listiterator funciona solo con la lista. El listiterator se puede usar para atravesar hacia adelante y hacia atrás a través de la lista.

  • La presencia de la clase Legacy:

El conjunto no tiene una clase heredada, mientras que la interfaz de la lista tiene un legado llamado como '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 de Vector además, deleciones y actualizaciones es un poco más lento.

  • Implementaciones:

Pocas de las implementaciones establecidas son Hashset, Linkedhashset y TreeSet. Pocas de las implementaciones de la lista incluyen ArrayList y LinkedList.

Cuándo usar Set & List?

El uso del conjunto y la lista depende puramente del requisito de mantenimiento de la orden de inserción. Como hemos aprendido que un conjunto nunca mantiene el orden de inserción, se puede usar cuando el orden es de menor importancia. De manera similar, use la lista cuando necesite mantener la secuencia de inserción también.

Diferencias en forma tabular:

S.No Diferencias en Colocar Lista
1. Orden de insercion Mantiene la orden de inserción. El primero insertado permanece en primer lugar, y así sucesivamente, independientemente de su valor. Nunca mantiene la 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 Puede tener solo un valor nulo al máximo. Puede tener cualquier número de valores nulos.
5. Uso de iterator () y listIterator () Utiliza solo el método iterator (). Utiliza tanto el iterator () como el listIterator ().
6. Presencia de clase heredada No hay clase heredada. Tiene una clase de heredado como vector llamado.
7. Implementación Pocas de las implementaciones de la interfaz establecida son hashset, Linkedhashset y set de árboles. Pocas de las implementaciones de la interfaz de la lista son LinkedList y ArrayList.

Espero que hemos incluido todas las diferencias posibles entre el conjunto y la lista. Si sientes que nos hemos perdido algo, háganos saber.