Collections
Collections
⚙️ Configurazione Maven
Nel file pom.xml aggiungi la dipendenza per Logback:
<dependencies>
<!-- Framework per il logging semplice e configurabile -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.14</version>
</dependency>
</dependencies>
import java.util.HashSet;
import java.util.Set;
Nota:
if (!numeri.add(num))
è importante perché il metodo add degli HashSet ritorna false se l'elemento è già presente.
Usandolo così, individuiamo subito i duplicati.
🟢 Classe MainEsercizio1.java
Nel package esercizio1 : New → Java Class → nome: MainEsercizio1
package esercizio1;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
Collections.sort(lista);
return lista;
}
🟢 Classe MainEsercizio2.java
package esercizio2;
import java.util.List;
import java.util.Scanner;
Ecco la parte mancante relativa all'Esercizio 3 completa di spiegazioni dettagliate e commenti chiarificatori.
import java.util.HashMap;
import java.util.Map;
// Rimuove un contatto per nome e restituisce true se il contatto esisteva e viene rimosso
public boolean rimuoviContatto(String nome) {
return contatti.remove(nome) != null;
}
🟢 Classe MainEsercizio3.java
Per creare questa classe in IntelliJ:
Tasto destro sul package esercizio3 → New → Java Class → nome: MainEsercizio3
package esercizio3;
import java.util.Scanner;
while (continua) {
System.out.println("\n1. Aggiungi contatto");
System.out.println("2. Rimuovi contatto");
System.out.println("3. Cerca nome per numero");
System.out.println("4. Cerca numero per nome");
System.out.println("5. Stampa tutti i contatti");
System.out.println("6. Esci");
System.out.print("Scelta: ");
String scelta = sc.nextLine();
switch (scelta) {
case "1":
System.out.print("Nome: ");
String nome = sc.nextLine();
System.out.print("Numero: ");
String numero = sc.nextLine();
indirizzario.aggiungiContatto(nome, numero);
System.out.println("Contatto aggiunto.");
break;
case "2":
System.out.print("Nome da rimuovere: ");
nome = sc.nextLine();
if (indirizzario.rimuoviContatto(nome))
System.out.println("Contatto rimosso.");
else
System.out.println("Contatto non trovato.");
break;
case "3":
System.out.print("Numero da cercare: ");
numero = sc.nextLine();
nome = indirizzario.cercaNomePerNumero(numero);
if (nome != null)
System.out.println("Numero associato a: " + nome);
else
System.out.println("Numero non trovato.");
break;
case "4":
System.out.print("Nome da cercare: ");
nome = sc.nextLine();
numero = indirizzario.cercaNumeroPerNome(nome);
if (numero != null)
System.out.println("Il numero di " + nome + " è " + numero);
else
System.out.println("Nome non trovato.");
break;
case "5":
indirizzario.stampaContatti();
break;
case "6":
continua = false;
break;
default:
System.out.println("Scelta non valida, riprova.");
}
}
sc.close();
}
}