CodeGym /Corso Java /Frontend SELF IT /New data structures: Map, Set

New data structures: Map, Set

Frontend SELF IT
Livello 45 , Lezione 2
Disponibile

3.1 Collezione Map

In ECMAScript 2015 (ES6) in JavaScript hanno aggiunto due nuove strutture dati: Map e Set. Queste strutture dati forniscono modi più flessibili ed efficienti di memorizzazione e gestione delle collezioni di dati rispetto agli oggetti tradizionali e agli array.

Map è una struttura dati che ti permette di conservare coppie chiave-valore, dove le chiavi possono essere di qualsiasi tipo, inclusi oggetti e funzioni.

1. Creazione e inizializzazione di Map:

JavaScript
    
      const map = new Map();
    
  

2. Aggiunta di elementi:

Il metodo set è usato per aggiungere nuove coppie chiave-valore al Map.

JavaScript
    
      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');
    
  

3. Ottenere elementi:

Il metodo get è usato per ottenere il valore tramite la chiave.

JavaScript
    
      const map = new Map();

      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');

      console.log(map.get('key1')); // 'value1'
      console.log(map.get(2)); // 'value2'
    
  

4. Controllo dell'esistenza di una chiave:

Il metodo has verifica se una chiave esiste nel Map.

JavaScript
    
      const map = new Map();

      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');

      console.log(map.has('key1')); // true
      console.log(map.has('key3')); // false
    
  

5. Rimozione di elementi:

Il metodo delete rimuove un elemento tramite la chiave.

JavaScript
    
      const map = new Map();

      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');

      map.delete('key1');
      console.log(map.has('key1')); // false
    
  

6. Pulizia di Map:

Il metodo clear rimuove tutti gli elementi dal Map.

JavaScript
    
      const map = new Map();

      map.set('key1', 'value1');
      map.set(2, 'value2');
      map.set({ name: 'objectKey' }, 'value3');

      map.clear();
      console.log(map.size); // 0
    
  

7. Iterazione su Map:

Puoi usare un ciclo for...of per iterare su Map.

Esempio:

JavaScript
    
      const map = new Map();
      map.set('key1', 'value1');
      map.set(2, 'value2');

      for (const [key, value] of map) {
        console.log(`${key}: ${value}`);
      }

      // 'key1: value1'
      // '2: value2'
    
  

3.2 Collezione Set

Set è una struttura dati che ti permette di memorizzare valori unici di qualsiasi tipo, inclusi oggetti e primitivi.

1. Creazione e inizializzazione di Set:

JavaScript
    
      const set = new Set();
    
  

2. Aggiunta di elementi:

Il metodo add è utilizzato per aggiungere nuovi valori al Set.

JavaScript
    
      set.add(1);
      set.add('value2');
      set.add({ name: 'objectValue' });
    
  

3. Controllo dell'esistenza di un valore:

Il metodo has verifica se un valore esiste nel Set.

JavaScript
    
      const set = new Set();

      set.add(1);
      set.add('value2');
      set.add({ name: 'objectValue' });

      console.log(set.has(1)); // true
      console.log(set.has('value3')); // false
    
  

4. Rimozione di elementi:

Il metodo delete rimuove un valore dal Set.

JavaScript
    
      const set = new Set();

      set.add(1);
      set.add('value2');
      set.add({ name: 'objectValue' });

      set.delete(1);
      console.log(set.has(1)); // false
    
  

5. Pulizia di Set:

Il metodo clear rimuove tutti gli elementi dal Set.

JavaScript
    
      const set = new Set();

      set.add(1);
      set.add('value2');
      set.add({ name: 'objectValue' });

      set.clear();
      console.log(set.size); // 0
    
  

6. Iterazione su Set:

Puoi usare un ciclo for...of per iterare su Set.

JavaScript
    
      const set = new Set();
      set.add(1);
      set.add('value2');

      for (const value of set) {
        console.log(value);
      }

      // 1
      // 'value2'
    
  

3.3 Confronto tra Map e Set

Vantaggi di Map:

  1. Chiavi arbitrarie: in Map le chiavi possono essere di qualsiasi tipo, inclusi oggetti e funzioni, a differenza degli oggetti, dove le chiavi possono essere solo stringhe o simboli.
  2. Elementi ordinati: gli elementi in Map mantengono l'ordine di inserimento, il che semplifica l'iterazione su di essi in ordine di aggiunta.
  3. Dimensione della collezione: il metodo size permette di ottenere rapidamente il numero di elementi in Map.

Vantaggi di Set:

  1. Valori unici: Set garantisce automaticamente che tutti i suoi elementi siano unici.
  2. Elementi ordinati: gli elementi in Set mantengono l'ordine di inserimento, il che semplifica l'iterazione su di essi in ordine di aggiunta.
  3. Operazioni ottimizzate: Set offre metodi ottimizzati per aggiungere, rimuovere e verificare la presenza di elementi.

Esempi pratici

Esempio di utilizzo di Map per conservare informazioni sugli utenti:

JavaScript
    
      const users = new Map();
      users.set(1, { name: 'Alice', age: 25 });
      users.set(2, { name: 'Bob', age: 30 });

      for (const [id, user] of users) {
        console.log(`User ID: ${id}, Name: ${user.name}, Age: ${user.age}`);
      }

      // User ID: 1, Name: Alice, Age: 25
      // User ID: 2, Name: Bob, Age: 30
    
  

Esempio di utilizzo di Set per filtrare valori unici:

JavaScript
    
      const numbers = [1, 2, 3, 1, 2, 4, 5, 3];
      const uniqueNumbers = new Set(numbers);

      for (const number of uniqueNumbers) {
        console.log(number);
      }

      // 1
      // 2
      // 3
      // 4
      // 5
    
  
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION