Differenza tra Set ed Elenco Differenza tra

Anonim

Differenza tra elenco di array e elenco collegato

Prima di addentrarci nelle differenze attuali, dobbiamo sapere quali sono realmente?

Che cos'è un set?

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

Ingresso in un Set: 20, 50, 10, 30.

Viene effettivamente memorizzato in un Set come 10, 20, 30, 50.

Gli elementi sono ordinati qui e sono memorizzati non nel loro ordine di inserimento. Questa è una delle caratteristiche di Set che ordina sempre gli elementi prima della memorizzazione e, naturalmente, ci sono delle eccezioni e uno di questi è LinkedhashSet in quanto mantiene l'ordine di inserimento degli elementi.

In termini informatici, il Set include poche proprietà aggiuntive come Metodi ed Ereditarietà. I metodi sono come le funzioni e svolgono determinate attività come l'aggiunta, la rimozione o l'iterazione attraverso il set di elementi. La maggior parte di noi è ben nota del termine Eredità e significa lo stesso qui. 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. e. l'Interfaccia Set, 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 sottostante, è possibile identificare i diversi tipi di Set come HashSet e TreeSet.

importazione java. util. *;

public public 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 ();

prova {

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

set. aggiungi (conteggio [i]);

}

Sistema. su. println (set);

TreeSet sortedSeteg = new TreeSet (set);

Sistema. su. println ("Qui abbiamo l'output ordinato:");

Sistema. su. println (sortedSeteg);

Sistema. su. println ("Guarda il primo elemento:" + (intero) sortedSet. first ());

Sistema. su. println ("Guarda l'ultimo elemento:" + (Integer) sortedSet. last ());

}

catch (Exception e) {}

}

}

L'output del codice sopra riportato è il seguente.

[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'è l'elenco?

Un elenco estende la raccolta 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 vedere come viene aggiunto ad esso.

L'input di una lista:

John, Nancy, Mary, Alice. Come viene memorizzato in una lista:

John, Nancy, Mary, Alice. Basta notare l'ordine in cui sono inseriti. È possibile identificare che "John" è il primo elemento nell'input e nell'output ed è seguito dallo stesso ordine in cui vengono inseriti i nomi. Possiamo anche considerare questa una delle principali proprietà di List.

Come implementarlo?

Vediamo alcuni dei metodi di List come ArrayList e LinkedList nella seguente sintassi.

importazione java. util. *;

public Collections Collectionssample {

public static void main (String [] args) {

List a1 = new ArrayList ();

a1. aggiungere (“John”);

a1. aggiungere (“Nancy”);

a1. aggiungere (“Maria”);

a1. aggiungere (“Alice”);

Sistema. su. println ("Elementi ArrayList sono");

Sistema. su. print (" t" + a1);

Elenco l1 = new LinkedList ();

l1. aggiungere (“Silvia”);

l1. aggiungere (“Arjun”);

l1. aggiungere (“Deepika”);

l1. aggiungere (“Susan”);

Sistema. su. println ();

Sistema. su. println ("Elementi LinkedList sono");

Sistema. su. print (" t" + l1); }}

L'output della sintassi precedente è il seguente.

Elementi ArrayList sono

[John, Nancy, Mary, Alice]

Elementi LinkedList

[Silvia, Arjun, Deepika, Susan]

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

Come si differenziano?

Metodi e descrizioni:

  • Set e List hanno i propri metodi e vediamo qui alcuni di essi.

S. No

Set - Metodi Elenco - Metodi 1.
add () - È per aggiungere oggetti a una raccolta. void add (int index, Object obj) - Aggiunge l'oggetto 'obj' nell'indice 'specificato' della lista di richiamo e si assicura che nessun elemento venga sovrascritto spostando gli elementi precedenti. 2.
clear () - Serve per rimuovere oggetti da una collezione. booleano addAll (int index, Collection c) - Aggiunge l'intera collezione 'c' alla lista di invocazione e all''indice 'specificato. Garantisce inoltre che nessun elemento venga sovrascritto. Possiamo anche verificare la correttezza delle sue operazioni esaminando il valore di ritorno. Restituisce 'true' se la modifica ha esito positivo altrimenti restituisce un valore 'false'. 3.
contains () - Serve per controllare se il Set contiene un certo oggetto in esso. Restituisce un valore 'true' se l'oggetto è presente nel Set. Oggetto get (int index) - Restituisce l'elemento o l'oggetto nell'indice specificato. 4.
isEmpty () - Serve a determinare se la raccolta aiuta come nessun elemento in essa. Restituisce un valore 'true' se non ci sono elementi. int lastIndexOf (Object obj) - Funziona in modo simile al contrario del metodo indexOf () . Restituisce l'ultima occorrenza dell'oggetto Object 'obj' e viene restituito un valore '1' se non vi è alcun oggetto di questo tipo nell'elenco. Pertanto, può anche essere usato come contains () Metodo dell'interfaccia Set. 6.
remove () - Serve per rimuovere un elemento da una collezione specificandolo come parametro del metodo. ListIterator listIterator () - Restituisce un iteratore all'indice di partenza della List. 7.
size () - È per contare il numero di oggetti o elementi che ha una collezione. ListIterator listIterator (int index) - Aiuta a scorrere l'Elenco di richiamo a partire dall'indice specificato. 8.
- Object remove (int index) - Elimina l'oggetto nell'indice specificato e restituisce l'elemento eliminato come risultato. Decrementa anche gli indici delle liste risultanti per riflettere la cancellazione. 9.
- Object set (int index, Object obj) - Assegna l'oggetto 'obj' alla lista di invocazione nell'indice 'specificato'. 10.
- Elenco sottocartella (int start, int end) - È per includere gli oggetti dall'indice 'start' all'indice 'end' nella lista che ha richiamato il metodo. Manutenzione dell'ordine di inserzione:
  • Il Set non mantiene mai l'ordine degli elementi in cui sono inseriti mentre l'Elenco lo mantiene. Esiste un'eccezione a questa regola per LinkedHashSet poiché mantiene l'ordine di inserimento ma l'altro Set come HashSet e TreeSet ordina gli elementi prima di memorizzarlo. Lo stesso è descritto con esempi di seguito.

Imposta

Ingresso: Gatto, Bambola, Mela. Memorizzato come: mela, gatto, bambola.

Inserimento di lista: Gatto, Bambola, Mela.

Memorizzato come: Gatto, Bambola, Mela.

La presenza di duplicati:

  • Un set non consente mai duplicati mentre un elenco lo consente. Se un valore duplicato deve essere aggiunto a una lista, viene sovrascritto. Guarda i campioni per impostare ed elencare i duplicati.

Imposta ingresso: 10, 20, 20, 50.

Memorizzato come: 10, 20, 50.

Ingresso lista: 10, 20, 20, 50.

Memorizzato come: 10, 20, 20, 50.

Valori nulli:

  • Un set può avere solo un valore nullo mentre un elenco può avere più di un valore nullo e non è limitato a nessun numero.

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

Memorizzato come: null, Cane, Uomo, Piano.

Input lista: 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 attraversare avanti e indietro l'elenco.

La presenza di Legacy Class:

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

Implementazioni:

  • Poche delle implementazioni dell'insieme sono HashSet, LinkedHashSet e TreeSet. Poche delle implementazioni di List includono ArrayList e LinkedList.

Quando usare Set & List?

L'utilizzo di Set e List dipende esclusivamente dal requisito di mantenimento dell'ordine di inserimento.Come abbiamo appreso che un Set non mantiene mai l'ordine di inserimento, può essere usato quando l'ordine è di minore importanza. In modo simile, utilizzare l'Elenco quando è necessario mantenere anche la sequenza di inserimento.

Differenze in forma tabulare:

S. Nessuna

Differenze in Imposta Elenco 1.
Ordine di inserzione Mantiene l'ordine di inserimento. Il primo inserito rimane in primo luogo e così via indipendentemente dal suo valore. Non mantiene mai l'ordine di inserimento. 2.
Metodi Usa i metodi come add (), clear (), contains (), isEmpty (), remove () e size (). Utilizza i metodi come add (), addAll (), get (), lastIndexOf (), ListIterator () con o senza parametro, remove (), set () e subList (). 3.
Duplicati Non consente mai duplicati e, nel caso di tali apparenze, il valore viene sovrascritto. Consente duplicati. 4.
Valori nulli Può avere solo un valore nullo al massimo. Può avere qualsiasi numero di valori nulli. 5.
Uso di Iterator () e listIterator () Utilizza solo il metodo iterator (). Usa sia iterator () che listIterator (). 6.
Presenza della classe legacy Non esiste una classe Legacy. Ha come classe Legacy chiamata come vettore. 7.
Implementazioni Poche delle implementazioni dell'interfaccia Set sono HashSet, LinkedHashSet e Tree Set. Alcune delle implementazioni dell'interfaccia Elenco sono LinkedList e ArrayList. Spero, abbiamo incluso ogni possibile differenza tra il Set e la Lista. Se ritieni di aver perso qualcosa, ti preghiamo di farcelo sapere.