Raccolte Java: interfaccia, elenco, coda, set in Java con esempi

Blog

Raccolte Java: interfaccia, elenco, coda, set in Java con esempi

Originariamente pubblicato da Aayushi Johari su https://www.edureka.co

Nella serie di tutorial Java, hai imparato a conoscere Concetti OOP e Stringhe Java . Ora, spostiamoci verso un concetto leggermente avanzato, ad es Collezioni Java . Le raccolte Java si riferiscono a una singola unità di oggetti. È possibile eseguire tutte le operazioni sui dati come la ricerca, l'ordinamento, l'inserimento, la manipolazione, l'eliminazione, ecc. dalle raccolte Java.



Ora, andiamo avanti in questo blog delle raccolte Java, dove ne capiremo ogni aspetto nella seguente sequenza:

  1. Che cos'è un framework di raccolta Java?
  2. Gerarchia del framework di raccolta Java
  3. Interfaccia
  4. Elenco
  5. Fare la coda
  6. Imposta

Iniziamo con il primo argomento nel blog delle raccolte Java.



Che cos'è un framework di raccolta Java?

Un framework di raccolta Java fornisce un'architettura per archiviare e manipolare un gruppo di oggetti. Un framework di raccolta Java include quanto segue:

  • Interfacce
  • Classi
  • Algoritmo

Impariamo a conoscerli nel dettaglio:



Interfacce : L'interfaccia in Java si riferisce ai tipi di dati astratti. Consentono di manipolare le raccolte Java indipendentemente dai dettagli della loro rappresentazione. Inoltre, formano una gerarchia nei linguaggi di programmazione orientati agli oggetti.

Classi: Le classi in Java sono l'implementazione dell'interfaccia di raccolta. Fondamentalmente si riferisce alle strutture di dati che vengono utilizzate più e più volte.

Algoritmo: L'algoritmo si riferisce ai metodi utilizzati per eseguire operazioni come la ricerca e l'ordinamento, su oggetti che implementano interfacce di raccolta. Gli algoritmi sono di natura polimorfica in quanto lo stesso metodo può essere utilizzato per assumere molte forme o puoi dire eseguire diverse implementazioni dell'interfaccia di raccolta Java.

Il framework di raccolta Java fornisce agli sviluppatori l'accesso a strutture di dati preconfezionate e algoritmi per manipolare i dati. Successivamente, passiamo alla gerarchia del framework delle raccolte Java e vediamo dove risiedono queste interfacce e classi.

Gerarchia del framework della raccolta Java

Come abbiamo appreso, il framework di raccolta Java include interfacce e classi. Ora, vediamo la gerarchia del framework delle raccolte Java.

Nell'immagine sopra, la parte blu si riferisce alle diverse interfacce e la parte gialla definisce la classe. Ora, cerchiamo di capire questi componenti in dettaglio.

Raccolte Java : Interfaccia

Interfaccia iteratore : Iterator è un'interfaccia che itera gli elementi. Serve per attraversare la lista e modificare gli elementi. L'interfaccia Iterator ha tre metodi che sono menzionati di seguito:

  1. public boolean hasNext() – Questo metodo restituisce true se l'iteratore ha più elementi.
  2. oggetto pubblico successivo() – Restituisce l'elemento e sposta il puntatore del cursore sull'elemento successivo.
  3. rimozione del vuoto pubblico() – Questo metodo rimuove gli ultimi elementi restituiti dall'iteratore.

Ci sono tre componenti che estendono l'interfaccia di raccolta, ad esempio List, Queue e Sets. Impariamo a conoscerli nel dettaglio:

Raccolte Java: Elenco

Un elenco è una raccolta ordinata di elementi che può contenere duplicati. È un'interfaccia che estende l'interfaccia Collection. Gli elenchi sono ulteriormente classificati come segue:

  1. Lista di array
  2. Lista collegata
  3. Vettori

Entriamo nel dettaglio di ciascuno di essi:

Lista di array: ArrayList è l'implementazione di List Interface in cui gli elementi possono essere aggiunti o rimossi dinamicamente dall'elenco. Inoltre, la dimensione dell'elenco viene aumentata dinamicamente se gli elementi vengono aggiunti più della dimensione iniziale.

semplici idee di progetto di reazione

Sintassi :

oggetto ArrayList = new ArrayList ();

Alcuni dei metodi nell'elenco degli array sono elencati di seguito:

Cerchiamo di capire l'elenco di array con un esempio programmatico:

import java.util.*; class ArrayListExample{ public static void main(String args[]){ ArrayList al=new ArrayList(); // creating array list al.add('Jack'); // adding elements al.add('Tyler'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

Nel codice sopra, restituirà i nomi che abbiamo aggiunto usando il metodo add(), ad esempio:

 Jack Tyler 

Lista collegata : L'elenco collegato è una sequenza di collegamenti che contiene elementi. Ogni collegamento contiene una connessione a un altro collegamento.

Sintassi : Oggetto Linkedlist = new Linkedlist();

La classe Java Linked List utilizza due tipi di Linked List per memorizzare gli elementi:

  • Elenco collegato singolarmente
  • Lista doppiamente collegata

Elenco collegato singolarmente : In un elenco collegato singolarmente, ogni nodo di questo elenco memorizza i dati del nodo e un puntatore o riferimento al nodo successivo nell'elenco. Fare riferimento all'immagine sottostante per ottenere una migliore comprensione del singolo elenco collegato.

Lista doppiamente collegata : In una lista doppiamente collegata, ha due riferimenti, uno al nodo successivo e l'altro al nodo precedente. Puoi fare riferimento all'immagine qui sotto per ottenere una migliore comprensione dell'elenco doppiamente collegato.

Alcuni dei metodi nell'elenco collegato sono elencati di seguito:

Cerchiamo di capire l'elenco collegato con un esempio programmatico:

import java.util.*; public class LinkedlistExample{ public static void main(String args[]){ LinkedList al=new LinkedList();// creating linked list al.add('Rachit'); // adding elements al.add('Rahul'); al.add('Rajat'); Iterator itr = al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

L'output del programma precedente sarebbe:

quanto tempo impiega l'app per depositare contanti?
Rachit Rahul Rajat 

Vettori : I vettori sono simili agli array, in cui è possibile accedere agli elementi dell'oggetto vettore tramite un indice nel vettore. Vector implementa un array dinamico. Inoltre, il vettore non è limitato a una dimensione specifica, può ridursi o crescere automaticamente quando richiesto. È simile a ArrayList, ma con due differenze:

  • Il vettore è sincronizzato.
  • Vector contiene molti metodi legacy che non fanno parte del framework delle raccolte.

Sintassi :

Oggetto Vector = new Vector(size,increment);

Di seguito sono riportati alcuni dei metodi della classe Vector:

Ora, passiamo al sottotipo successivo dell'interfaccia delle raccolte Java, ovvero Queue.

Raccolte Java: Queue

Queue in Java segue un approccio FIFO, cioè ordina gli elementi in modo First In First Out. In una coda, il primo elemento viene rimosso per primo e l'ultimo elemento viene rimosso alla fine. Ogni metodo di base esiste in due forme: una genera un'eccezione se l'operazione fallisce, l'altra restituisce un valore speciale.

Inoltre, la coda di priorità implementa l'interfaccia Queue. Gli elementi del coda prioritaria sono ordinati secondo il loro ordinamento naturale, o da un Comparatore fornito al momento della costruzione della coda. La testa di questa coda è l'elemento minimo rispetto all'ordinamento specificato.

Di seguito sono riportati alcuni dei metodi dell'interfaccia Java Queue:

Cerchiamo di comprendere queste code prioritarie con un esempio programmatico:

import java.util.*; class QueueExample { public static void main(String args[]){ PriorityQueue queue=new PriorityQueue(); // creating priority queue queue.add('Amit'); // adding elements queue.add('Rachit'); queue.add('Rahul'); 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()); } } } 

Nel codice sopra, l'output sarebbe:

head:Amit head:Amit iterating the queue elements: Amit Rachit Rahul after removing two elements: Rahul 

Successivamente, passiamo al nostro prossimo argomento nel blog di Java Collections, ovvero Sets.

Collezioni Java: set

Un Set fa riferimento a una raccolta che non può contenere elementi duplicati. Viene principalmente utilizzato per modellare l'astrazione dell'insieme matematico. Set ha la sua implementazione in varie classi come HashSet, TreeSet e LinkedHashSet.

Entriamo nel dettaglio di ciascuno di essi:

HashSet : la classe Java HashSet crea una raccolta che utilizza una tabella hash per l'archiviazione. Hashset contiene solo elementi univoci ed eredita la classe AbstractSet e implementa l'interfaccia Set. Inoltre, utilizza un meccanismo hashing per memorizzare gli elementi.

Di seguito sono riportati alcuni dei metodi della classe Java HashSet:

Cerchiamo di capire questi Hashset con un esempio programmatico:

import java.util.*; class HashsetExample{ public static void main(String args[]){ HashSet al=new HashSet(); // creating hashSet al.add('Rachit'); // adding elements al.add('Amit'); al.add('jack'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 

L'output del codice precedente sarebbe:

Amit Rachit jack 

Hashset collegato Nota: la classe Java LinkedHashSet è un'implementazione di tabelle hash e elenchi collegati dell'interfaccia set. Contiene solo elementi univoci come HashSet. HashSet collegato fornisce anche tutte le operazioni di set opzionali e mantiene l'ordine di inserzione. Cerchiamo di capire questi Hashset collegati con un esempio programmatico:

import java.util.  ;  
class LinkedHashsetExample{
public static void main(String args[]){
LinkedHashSet al=new LinkedHashSet(); // creating linkedhashset
al.add(Mariana); // adding elements
al.add(Rick);
al.add(Sam);
Iterator itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
}

L'output del codice precedente sarebbe:

  Mariana  
Rick
Sam

AlberoSet : la classe TreeSet implementa l'interfaccia Set che utilizza un albero per l'archiviazione. Gli oggetti di questa classe sono memorizzati in ordine crescente. Inoltre, eredita la classe AbstractSet e implementa l'interfaccia NavigableSet. Contiene solo elementi univoci come HashSet. Nella classe TreeSet, i tempi di accesso e recupero sono più rapidi.

Di seguito sono riportati alcuni dei metodi della classe Java TreeSet:

Cerchiamo di capire questi TreeSet con un esempio programmatico:

comando mongod non trovato mac
  import java.util.  ;  
class TreeSetExample{
public static void main(String args[]){
TreeSet al=new TreeSet(); // creating treeSet
al.add(John); // adding elements
al.add(Sam);
al.add(Rick);
Iterator itr=al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}

L'output del programma precedente sarebbe:

John  
Rick
Sam

Ora ti starai chiedendo qual è la differenza tra tutti questi set?

HashSet archivia gli elementi in ordine casuale, mentre LinkedHashSet archivia gli elementi in base all'ordine di inserimento e TreeHashSet archivia in base all'ordine naturale.

Grazie per aver letto

Se ti è piaciuto questo post, condividilo con tutti i tuoi amici di programmazione!

Seguici su Facebook | Twitter

Ulteriori letture

☞ Python vs Java: comprendere la programmazione orientata agli oggetti

? Angular 7 + Spring Boot Esempio CRUD

☞ Protezione dell'API RESTful con Spring Boot, Security e Data MongoDB

☞ Python vs Java: comprendere la programmazione orientata agli oggetti

? Le migliori estensioni di codice VS per sviluppatori full stack



#Giava