Differenza tra Set e List

Differenza tra elenco array e elenco collegato



Prima noi ottenere nelle differenze effettive, facci sapere cosa sono veramente?



Cos'è un set?

Abbiamo incontrato il concetto di Set in matematica e il Set qui significa più o meno lo stesso. Sì, è una raccolta di elementi e, nella maggior parte dei casi, una raccolta di elementi simili. Puoi provare ad aggiungere queste elementi in un Set e prova a stampare per capire come è effettivamente memorizzato.

Input a un set:20, 50, 10, 30.



In realtà è memorizzato in un Set come10, 20, 30, 50.

Gli elementi vengono ordinati qui e non vengono memorizzati nel loro ordine di inserimento. Questa è una delle caratteristiche di Set che ordina sempre gli elementi prima di archiviarli e, naturalmente, ci sono delle eccezioni e una di queste è LinkedhashSet poiché mantiene l'ordine di inserimento degli elementi.

In termini informatici, il Set include poche proprietà aggiuntive come Metodi ed Ereditarietà. I metodi sono proprio come le funzioni e svolgono determinate attività come l'aggiunta, la rimozione o l'iterazione attraverso l'insieme di elementi. La maggior parte di noi conosce bene il termine Eredità e qui significa lo stesso. Sì, possiamo ereditare un metodo dalla sua raccolta, in modo che possa essere utilizzato con l'interfaccia set. Ancora una volta stiamo parlando di un nuovo termine, ovvero Set Interface, e non è altro che l'intero insieme di elementi inclusi i Metodi.



Come implementarlo?

Solo per una migliore comprensione, abbiamo rappresentato un Set con la sua sintassi. Dalla sintassi seguente, è possibile identificare i diversi tipi di Set come HashSet e TreeSet.

import java.util. *;

public class Setexample {

pubblico statico void main (String args []) {

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

Set set = new HashSet ();

provare {

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

set.add (count [i]);

}

System.out.println (set);

TreeSet SortSeteg = nuovo TreeSet (set);

System.out.println ('Qui abbiamo l'output ordinato:');

System.out.println (SortSeteg);

System.out.println ('Guarda il primo elemento:' + (Integer) SortSet.first ());

System.out.println ('Guarda l'ultimo elemento:' + (Integer) SortSet.last ());

}

catch (eccezione e) {}

}

}

L'output di quanto sopra codice è come segue.

[25, 17, 76, 12, 88]
Qui abbiamo l'output ordinato:
[12, 17, 25, 76, 88]
Guarda il primo elemento: 12
Guarda l'ultimo elemento: 88

Cos'è List?

Un List estende Collection in modo simile a come ha fatto un Set, ma mantiene l'ordine di inserimento. Prova ad aggiungere i seguenti nomi a un elenco e vedi come vengono aggiunti ad esso.

L'input di un elenco:John, Nancy, Mary, Alice.

Come viene memorizzato in un elenco:John, Nancy, Mary, Alice.

Basta notare l'ordine in cui sono inseriti. Puoi identificare che 'John' è il primo elemento sia nell'input che nell'output ed è seguito dallo stesso ordine in cui sono inseriti i nomi. Possiamo persino considerare questa una delle principali proprietà di List.

Come implementarlo?

Diamo un'occhiata ad alcuni dei metodi di List come ArrayList e LinkedList nella sintassi seguente.

import java.util. *;
public class Collectionssample {

public static void main (String [] args) {

List a1 = new ArrayList ();
a1.add ('John');
a1.add ('Nancy');
a1.add ('Mary');
a1.add ('Alice');
System.out.println ('ArrayList Elements are');
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); }}

L'output della sintassi precedente è il seguente.

Gli elementi di ArrayList sono

[John, Nancy, Mary, Alice]

Elementi di LinkedList

[Silvia, Arjun, Deepika, Susan]

È molto chiaro dal codice precedente che sia ArrayList che LinkedList mantengono l'ordine di inserimento.

Come differiscono?

  • Metodi e descrizioni:

The Set and the List ha i suoi metodi e vediamo alcuni di essi qui.

S.No Set - Metodi Elenco - Metodi
1. Inserisci()- Serve per aggiungere oggetti a una collezione. void add (int index, Object obj) -Aggiunge l'oggetto 'obj' all ''indice' specificato dell'elenco di invocazione e si assicura che nessun elemento venga sovrascritto spostando gli elementi precedenti.
2. chiaro () -Serve a rimuovere oggetti da una raccolta. booleano addAll (int index, Collection c) -Aggiunge l'intera raccolta 'c' all'elenco di richiamo e all ''indice' specificato. Assicura inoltre che nessun elemento venga sovrascritto. Possiamo anche verificare la correttezza del suo funzionamento esaminando il valore restituito. Restituisce 'true' se la modifica ha esito positivo, altrimenti restituisce un valore 'false'.
3. contiene () -Serve per verificare se il Set contiene un certo oggetto al suo interno. Restituisce un valore 'vero' se l'oggetto è presente nel Set. Oggetto get (int index) -Restituisce l'elemento o l'oggetto in corrispondenza dell ''indice' specificato.
Quattro. è vuoto()- È per determinare se la raccolta aiuta in quanto non contiene elementi. Restituisce un valore 'vero' se non è presente alcun elemento. int lastIndexOf (Object obj) -Funziona in modo simile al contrario diindice di()Metodo. Restituisce l'ultima occorrenza dell'oggetto 'obj' specificato e viene restituito un valore '1' se nell'elenco non è presente alcun oggetto di questo tipo. Pertanto, può essere utilizzato anche comecontiene ()Metodo dell'interfaccia Set.
6. rimuovere()- È rimuovere un elemento da una raccolta specificandolo come parametro del metodo. ListIterator listIterator () -Restituisce un iteratore all'indice iniziale dell'elenco.
7. taglia()- È per contare il numero di oggetti o elementi che una raccolta ha. ListIterator listIterator (int index) -Aiuta a scorrere l'elenco di invocazione a partire dall ''indice' specificato.
8. - Object remove (int index) -Elimina l'oggetto in corrispondenza dell ''indice' specificato e restituisce l'elemento eliminato come risultato. Inoltre, riduce gli indici di elenco risultanti per riflettere l'eliminazione.
9. - Set di oggetti (int index, Object obj) -Consiste nell'assegnare l'oggetto 'obj' all'elenco di invocazione in corrispondenza dell ''indice' specificato.
10. - List subList (int inizio, int fine) -Significa includere gli oggetti dall'indice 'inizio' all'indice 'fine' nell'elenco che ha invocato il Metodo.
  • Manutenzione dell'ordine di inserzione:

Il Set non mantiene mai l'ordine degli elementi in cui sono inseriti al suo interno, mentre l'elenco lo mantiene. C'è un'eccezione a questa regola per LinkedHashSet in quanto mantiene l'ordine di inserimento ma l'altro Set come HashSet e TreeSet ordinano gli elementi prima di riporlo. Lo stesso è descritto con gli esempi di seguito.

Impostato Input: gatto, bambola, mela.

Conservato come: mela, gatto, bambola.

Input elenco: gatto, bambola, mela.

Archiviato come: gatto, bambola, mela.

  • La presenza di duplicati:

Un Set non consente mai i duplicati mentre un List lo consente. Se un valore duplicato deve essere aggiunto a un elenco, viene sovrascritto. Guarda gli esempi per i duplicati Set ed List.

Imposta ingresso: 10, 20, 20, 50.

Memorizzato come: 10, 20, 50.

Inserimento elenco: 10, 20, 20, 50.

Memorizzato come: 10, 20, 20, 50.

  • Valori nulli:

Un Set può avere un solo valore null mentre un List può avere più di un valore null e non è limitato a nessun numero.

Imposta input: null, null, Man, Dog, Plane.

Memorizzato come: null, Dog, Man, Plane.

Input elenco: null, null, Man, Dog, Plane.

Memorizzato come: null, null, Man, Dog, Plane.

  • Uso di Iterator e ListIterator:

Il metodo Iterator funziona bene sia con Set che con List, mentre il metodo ListIterator funziona solo con List. ListIterator può essere utilizzato per spostarsi in avanti e all'indietro in List.

  • La presenza di Legacy Class:

Il Set non ha una classe legacy mentre l'interfaccia List ha una legacy chiamata 'vettore'. Un vettore utilizza l'interfaccia List e quindi mantiene l'ordine di inserimento. A causa degli sforzi di sincronizzazione, le prestazioni del vettore in aggiunte, eliminazioni e aggiornamenti sono leggermente più lente.

  • Implementazioni:

Poche implementazioni di Set sono HashSet, LinkedHashSet e TreeSet. Poche delle implementazioni di List includono ArrayList e LinkedList.

Quando usare Set & List?

L'utilizzo di Set and List dipende esclusivamente dal requisito di mantenimento dell'ordine di inserzione. Poiché abbiamo appreso che un Set non mantiene mai l'ordine di inserimento, può essere utilizzato quando l'ordine è di minore importanza. In modo simile, usa l'Elenco quando devi mantenere anche la sequenza di inserimento.

Differenze in una forma tabulare:

S.No Differenze in Impostato Elenco
1. Ordine di inserzione Mantiene l'ordine di inserimento. Il primo inserito rimane al primo posto e così via indipendentemente dal suo valore. Non mantiene mai l'ordine di inserzione.
2. Metodi Utilizza metodi come add (), clear (), contains (), isEmpty (), remove () e size (). Utilizza metodi come add (), addAll (), get (), lastIndexOf (), ListIterator () con o senza parametro, remove (), set () e subList ().
3. Duplicati Non consente mai duplicati e in caso di tali apparenze il valore viene sovrascritto. Consente duplicati.
Quattro. Valori nulli Può avere un solo valore nullo al massimo. Può avere un numero qualsiasi di valori null.
5. Uso di Iterator () e listIterator () Utilizza solo il metodo iterator (). Utilizza sia iterator () che listIterator ().
6. Presenza di legacy Class Non esiste una classe Legacy. Ha una classe Legacy chiamata come vettore.
7. Implementazioni Poche delle implementazioni dell'interfaccia Set sono HashSet, LinkedHashSet e Tree Set. Poche delle implementazioni dell'interfaccia List sono LinkedList e ArrayList.

Spero, abbiamo incluso ogni possibile differenza tra il set e la lista. Se ritieni che ci siamo persi qualcosa, faccelo sapere.

Messaggi Popolari

Differenza tra furto con scasso e furto

Furto e furto con scasso sono reati penali usati in modo intercambiabile. Tuttavia, le due parole connotano significati diversi: per furto con scasso si intende l'ingresso illegale in un

Revolver Webley & Scott Mk VI: The British Officer's Man-Stopper of Choice

Il revolver top-break Webley & Scott Mk VI era un'arma versatile, progettata pensando alla guerra di trincea, che rimase popolare tra gli ufficiali britannici durante la seconda guerra mondiale.

Differenza tra andare a e Will

Going to e Will 'Going to' e 'will' sono usati nella lingua inglese come tempo futuro. Il tempo futuro ha molti modi diversi di essere espresso.

Differenza tra Dual Core e Core 2 Duo

Dual Core vs Core 2 Duo I processori Dual core sono quelli che contengono 2 core in un singolo chip di silicio mentre Core 2 Duo è il nome dato da Intel al suo secondo

Josef Mengele: uno sguardo al confine tra uomo e mostro

Un nuovo libro sulla vita del famigerato dottore nazista mostra come le persone comuni possano essere capaci di una crudeltà straordinaria.

Differenza tra mulino a vento e turbina eolica

L'uso di fonti energetiche rinnovabili come l'energia eolica per la generazione di elettricità non è una nuova tecnologia. Infatti, attinge alla riscoperta di a