diff --git a/asdl/bin/binary_tree/BinaryNode.class b/asdl/bin/binary_tree/BinaryNode.class deleted file mode 100644 index ccbee92..0000000 Binary files a/asdl/bin/binary_tree/BinaryNode.class and /dev/null differ diff --git a/asdl/bin/binary_tree/BinaryTree.class b/asdl/bin/binary_tree/BinaryTree.class deleted file mode 100644 index 2cf0e0c..0000000 Binary files a/asdl/bin/binary_tree/BinaryTree.class and /dev/null differ diff --git a/asdl/bin/binary_tree/ExerciseBinaryTree.class b/asdl/bin/binary_tree/ExerciseBinaryTree.class deleted file mode 100644 index dd07f93..0000000 Binary files a/asdl/bin/binary_tree/ExerciseBinaryTree.class and /dev/null differ diff --git a/asdl/bin/binary_tree/LinkedBinaryTree.class b/asdl/bin/binary_tree/LinkedBinaryTree.class deleted file mode 100644 index d0a6515..0000000 Binary files a/asdl/bin/binary_tree/LinkedBinaryTree.class and /dev/null differ diff --git a/asdl/bin/comparatori/videogioco/ComparatorVideogioco1.class b/asdl/bin/comparatori/videogioco/ComparatorVideogioco1.class deleted file mode 100644 index 2eb1b89..0000000 Binary files a/asdl/bin/comparatori/videogioco/ComparatorVideogioco1.class and /dev/null differ diff --git a/asdl/bin/comparatori/videogioco/ComparatorVideogioco2.class b/asdl/bin/comparatori/videogioco/ComparatorVideogioco2.class deleted file mode 100644 index f7724ab..0000000 Binary files a/asdl/bin/comparatori/videogioco/ComparatorVideogioco2.class and /dev/null differ diff --git a/asdl/bin/comparatori/videogioco/ComparatorVideogioco3.class b/asdl/bin/comparatori/videogioco/ComparatorVideogioco3.class deleted file mode 100644 index 691eff1..0000000 Binary files a/asdl/bin/comparatori/videogioco/ComparatorVideogioco3.class and /dev/null differ diff --git a/asdl/bin/comparatori/videogioco/Main.class b/asdl/bin/comparatori/videogioco/Main.class deleted file mode 100644 index 4bc603a..0000000 Binary files a/asdl/bin/comparatori/videogioco/Main.class and /dev/null differ diff --git a/asdl/bin/comparatori/videogioco/Videogioco.class b/asdl/bin/comparatori/videogioco/Videogioco.class deleted file mode 100644 index 68023b0..0000000 Binary files a/asdl/bin/comparatori/videogioco/Videogioco.class and /dev/null differ diff --git a/asdl/bin/jcf_map/exercise/BinaryTreeMap.class b/asdl/bin/jcf_map/exercise/BinaryTreeMap.class deleted file mode 100644 index 4e0513b..0000000 Binary files a/asdl/bin/jcf_map/exercise/BinaryTreeMap.class and /dev/null differ diff --git a/asdl/bin/jcf_map/exercise/CompanyMap.class b/asdl/bin/jcf_map/exercise/CompanyMap.class deleted file mode 100644 index 1463ff7..0000000 Binary files a/asdl/bin/jcf_map/exercise/CompanyMap.class and /dev/null differ diff --git a/asdl/bin/jcf_map/exercise/Dispari.class b/asdl/bin/jcf_map/exercise/Dispari.class deleted file mode 100644 index c2b7cef..0000000 Binary files a/asdl/bin/jcf_map/exercise/Dispari.class and /dev/null differ diff --git a/asdl/bin/jcf_set/example/Decreasing.class b/asdl/bin/jcf_set/example/Decreasing.class deleted file mode 100644 index f3a11c2..0000000 Binary files a/asdl/bin/jcf_set/example/Decreasing.class and /dev/null differ diff --git a/asdl/bin/jcf_set/example/InteriRipetuti.class b/asdl/bin/jcf_set/example/InteriRipetuti.class deleted file mode 100644 index 41f30b4..0000000 Binary files a/asdl/bin/jcf_set/example/InteriRipetuti.class and /dev/null differ diff --git a/asdl/bin/jcf_set/example/TreeSetExample1.class b/asdl/bin/jcf_set/example/TreeSetExample1.class deleted file mode 100644 index ed46266..0000000 Binary files a/asdl/bin/jcf_set/example/TreeSetExample1.class and /dev/null differ diff --git a/asdl/bin/jcf_set/example/TreeSetExample2.class b/asdl/bin/jcf_set/example/TreeSetExample2.class deleted file mode 100644 index e98f5b9..0000000 Binary files a/asdl/bin/jcf_set/example/TreeSetExample2.class and /dev/null differ diff --git a/asdl/bin/jcf_set/exercise/EsercizioParole$1.class b/asdl/bin/jcf_set/exercise/EsercizioParole$1.class deleted file mode 100644 index fb6276c..0000000 Binary files a/asdl/bin/jcf_set/exercise/EsercizioParole$1.class and /dev/null differ diff --git a/asdl/bin/jcf_set/exercise/EsercizioParole.class b/asdl/bin/jcf_set/exercise/EsercizioParole.class deleted file mode 100644 index 9f563ce..0000000 Binary files a/asdl/bin/jcf_set/exercise/EsercizioParole.class and /dev/null differ diff --git a/asdl/bin/jcf_set/exercise/Insiemistica.class b/asdl/bin/jcf_set/exercise/Insiemistica.class deleted file mode 100644 index 74c01fc..0000000 Binary files a/asdl/bin/jcf_set/exercise/Insiemistica.class and /dev/null differ diff --git a/asdl/bin/jcf_set/exercise/IteratoreSenzaDuplicati.class b/asdl/bin/jcf_set/exercise/IteratoreSenzaDuplicati.class deleted file mode 100644 index 4000612..0000000 Binary files a/asdl/bin/jcf_set/exercise/IteratoreSenzaDuplicati.class and /dev/null differ diff --git a/asdl/bin/list/mylinkedlist/MyLinkedList$MyLinkedListIterator.class b/asdl/bin/list/mylinkedlist/MyLinkedList$MyLinkedListIterator.class deleted file mode 100644 index 1eb3b0f..0000000 Binary files a/asdl/bin/list/mylinkedlist/MyLinkedList$MyLinkedListIterator.class and /dev/null differ diff --git a/asdl/bin/list/mylinkedlist/MyLinkedList$Node.class b/asdl/bin/list/mylinkedlist/MyLinkedList$Node.class deleted file mode 100644 index f831781..0000000 Binary files a/asdl/bin/list/mylinkedlist/MyLinkedList$Node.class and /dev/null differ diff --git a/asdl/bin/list/mylinkedlist/MyLinkedList.class b/asdl/bin/list/mylinkedlist/MyLinkedList.class deleted file mode 100644 index 1fb99ad..0000000 Binary files a/asdl/bin/list/mylinkedlist/MyLinkedList.class and /dev/null differ diff --git a/asdl/bin/module-info.class b/asdl/bin/module-info.class deleted file mode 100644 index 8d44288..0000000 Binary files a/asdl/bin/module-info.class and /dev/null differ diff --git a/asdl/bin/network/Graph.class b/asdl/bin/network/Graph.class deleted file mode 100644 index 71e4e17..0000000 Binary files a/asdl/bin/network/Graph.class and /dev/null differ diff --git a/asdl/bin/network/UnweightGraph.class b/asdl/bin/network/UnweightGraph.class deleted file mode 100644 index 0e3a792..0000000 Binary files a/asdl/bin/network/UnweightGraph.class and /dev/null differ diff --git a/asdl/bin/network/network/Network$BreadthFirstIterator.class b/asdl/bin/network/network/Network$BreadthFirstIterator.class deleted file mode 100644 index 1373616..0000000 Binary files a/asdl/bin/network/network/Network$BreadthFirstIterator.class and /dev/null differ diff --git a/asdl/bin/network/network/Network$DepthFirstIterator.class b/asdl/bin/network/network/Network$DepthFirstIterator.class deleted file mode 100644 index 1a95184..0000000 Binary files a/asdl/bin/network/network/Network$DepthFirstIterator.class and /dev/null differ diff --git a/asdl/bin/network/network/Network$NetworkIterator.class b/asdl/bin/network/network/Network$NetworkIterator.class deleted file mode 100644 index 66276f8..0000000 Binary files a/asdl/bin/network/network/Network$NetworkIterator.class and /dev/null differ diff --git a/asdl/bin/network/network/Network.class b/asdl/bin/network/network/Network.class deleted file mode 100644 index c7c5019..0000000 Binary files a/asdl/bin/network/network/Network.class and /dev/null differ diff --git a/asdl/bin/network/network/UnweightNetwork$BreadthFirstIterator.class b/asdl/bin/network/network/UnweightNetwork$BreadthFirstIterator.class deleted file mode 100644 index 24a9c19..0000000 Binary files a/asdl/bin/network/network/UnweightNetwork$BreadthFirstIterator.class and /dev/null differ diff --git a/asdl/bin/network/network/UnweightNetwork$DepthFirstIterator.class b/asdl/bin/network/network/UnweightNetwork$DepthFirstIterator.class deleted file mode 100644 index 0da675d..0000000 Binary files a/asdl/bin/network/network/UnweightNetwork$DepthFirstIterator.class and /dev/null differ diff --git a/asdl/bin/network/network/UnweightNetwork$UnweightNetworkIterator.class b/asdl/bin/network/network/UnweightNetwork$UnweightNetworkIterator.class deleted file mode 100644 index 0bf3d27..0000000 Binary files a/asdl/bin/network/network/UnweightNetwork$UnweightNetworkIterator.class and /dev/null differ diff --git a/asdl/bin/network/network/UnweightNetwork.class b/asdl/bin/network/network/UnweightNetwork.class deleted file mode 100644 index 263d1f2..0000000 Binary files a/asdl/bin/network/network/UnweightNetwork.class and /dev/null differ diff --git a/asdl/bin/network/undirected_network/UndirectedNetwork.class b/asdl/bin/network/undirected_network/UndirectedNetwork.class deleted file mode 100644 index 5c757ed..0000000 Binary files a/asdl/bin/network/undirected_network/UndirectedNetwork.class and /dev/null differ diff --git a/asdl/bin/parziale/p191108/Archivio.class b/asdl/bin/parziale/p191108/Archivio.class deleted file mode 100644 index 35b030a..0000000 Binary files a/asdl/bin/parziale/p191108/Archivio.class and /dev/null differ diff --git a/asdl/bin/parziale/p191108/Cliente.class b/asdl/bin/parziale/p191108/Cliente.class deleted file mode 100644 index 363d3c8..0000000 Binary files a/asdl/bin/parziale/p191108/Cliente.class and /dev/null differ diff --git a/asdl/bin/parziale/p231110/Esercizio.class b/asdl/bin/parziale/p231110/Esercizio.class deleted file mode 100644 index db381e8..0000000 Binary files a/asdl/bin/parziale/p231110/Esercizio.class and /dev/null differ diff --git a/asdl/bin/parziale/p231110/Libreria$1.class b/asdl/bin/parziale/p231110/Libreria$1.class deleted file mode 100644 index d757784..0000000 Binary files a/asdl/bin/parziale/p231110/Libreria$1.class and /dev/null differ diff --git a/asdl/bin/parziale/p231110/Libreria$2.class b/asdl/bin/parziale/p231110/Libreria$2.class deleted file mode 100644 index 73f49cf..0000000 Binary files a/asdl/bin/parziale/p231110/Libreria$2.class and /dev/null differ diff --git a/asdl/bin/parziale/p231110/Libreria.class b/asdl/bin/parziale/p231110/Libreria.class deleted file mode 100644 index bb7d69b..0000000 Binary files a/asdl/bin/parziale/p231110/Libreria.class and /dev/null differ diff --git a/asdl/bin/parziale/p231110/Libro.class b/asdl/bin/parziale/p231110/Libro.class deleted file mode 100644 index 98660a7..0000000 Binary files a/asdl/bin/parziale/p231110/Libro.class and /dev/null differ diff --git a/asdl/bin/parziale/p251110/Clinica$1.class b/asdl/bin/parziale/p251110/Clinica$1.class deleted file mode 100644 index cca2eeb..0000000 Binary files a/asdl/bin/parziale/p251110/Clinica$1.class and /dev/null differ diff --git a/asdl/bin/parziale/p251110/Clinica$2.class b/asdl/bin/parziale/p251110/Clinica$2.class deleted file mode 100644 index 2bb4da7..0000000 Binary files a/asdl/bin/parziale/p251110/Clinica$2.class and /dev/null differ diff --git a/asdl/bin/parziale/p251110/Clinica.class b/asdl/bin/parziale/p251110/Clinica.class deleted file mode 100644 index b0f6364..0000000 Binary files a/asdl/bin/parziale/p251110/Clinica.class and /dev/null differ diff --git a/asdl/bin/parziale/p251110/Paziente.class b/asdl/bin/parziale/p251110/Paziente.class deleted file mode 100644 index 43c2b3b..0000000 Binary files a/asdl/bin/parziale/p251110/Paziente.class and /dev/null differ diff --git a/asdl/bin/queue/ArrayListQueue.class b/asdl/bin/queue/ArrayListQueue.class deleted file mode 100644 index 7fffd91..0000000 Binary files a/asdl/bin/queue/ArrayListQueue.class and /dev/null differ diff --git a/asdl/bin/queue/MyQueue.class b/asdl/bin/queue/MyQueue.class deleted file mode 100644 index 87e7efb..0000000 Binary files a/asdl/bin/queue/MyQueue.class and /dev/null differ diff --git a/asdl/bin/queue/QueueExample.class b/asdl/bin/queue/QueueExample.class deleted file mode 100644 index e327d0d..0000000 Binary files a/asdl/bin/queue/QueueExample.class and /dev/null differ diff --git a/asdl/bin/stack/ArrayListStack.class b/asdl/bin/stack/ArrayListStack.class deleted file mode 100644 index 819174a..0000000 Binary files a/asdl/bin/stack/ArrayListStack.class and /dev/null differ diff --git a/asdl/bin/stack/MyStack.class b/asdl/bin/stack/MyStack.class deleted file mode 100644 index 0ef4d7d..0000000 Binary files a/asdl/bin/stack/MyStack.class and /dev/null differ diff --git a/asdl/bin/stack/StackExample.class b/asdl/bin/stack/StackExample.class deleted file mode 100644 index 468872b..0000000 Binary files a/asdl/bin/stack/StackExample.class and /dev/null differ diff --git a/asdl/bin/test/Main.class b/asdl/bin/test/Main.class deleted file mode 100644 index 3b26159..0000000 Binary files a/asdl/bin/test/Main.class and /dev/null differ diff --git a/asdl/bin/totale/p160726/Corriere$1.class b/asdl/bin/totale/p160726/Corriere$1.class deleted file mode 100644 index 6e227e9..0000000 Binary files a/asdl/bin/totale/p160726/Corriere$1.class and /dev/null differ diff --git a/asdl/bin/totale/p160726/Corriere.class b/asdl/bin/totale/p160726/Corriere.class deleted file mode 100644 index 380a399..0000000 Binary files a/asdl/bin/totale/p160726/Corriere.class and /dev/null differ diff --git a/asdl/bin/totale/p160726/Spedizione.class b/asdl/bin/totale/p160726/Spedizione.class deleted file mode 100644 index 6971d4d..0000000 Binary files a/asdl/bin/totale/p160726/Spedizione.class and /dev/null differ diff --git a/asdl/bin/totale/p240116/Docente.class b/asdl/bin/totale/p240116/Docente.class deleted file mode 100644 index 8dcc55b..0000000 Binary files a/asdl/bin/totale/p240116/Docente.class and /dev/null differ diff --git a/asdl/bin/totale/p240116/Universita$1.class b/asdl/bin/totale/p240116/Universita$1.class deleted file mode 100644 index ea972e0..0000000 Binary files a/asdl/bin/totale/p240116/Universita$1.class and /dev/null differ diff --git a/asdl/bin/totale/p240116/Universita.class b/asdl/bin/totale/p240116/Universita.class deleted file mode 100644 index 1515d97..0000000 Binary files a/asdl/bin/totale/p240116/Universita.class and /dev/null differ diff --git a/asdl/bin/totale/p240130/Articolo.class b/asdl/bin/totale/p240130/Articolo.class deleted file mode 100644 index aeb6329..0000000 Binary files a/asdl/bin/totale/p240130/Articolo.class and /dev/null differ diff --git a/asdl/bin/totale/p240130/Catologo$1.class b/asdl/bin/totale/p240130/Catologo$1.class deleted file mode 100644 index b504b48..0000000 Binary files a/asdl/bin/totale/p240130/Catologo$1.class and /dev/null differ diff --git a/asdl/bin/totale/p240130/Catologo.class b/asdl/bin/totale/p240130/Catologo.class deleted file mode 100644 index 42c7ae2..0000000 Binary files a/asdl/bin/totale/p240130/Catologo.class and /dev/null differ diff --git a/asdl/bin/totale/p240213/Discendenza$1.class b/asdl/bin/totale/p240213/Discendenza$1.class deleted file mode 100644 index 40c44f3..0000000 Binary files a/asdl/bin/totale/p240213/Discendenza$1.class and /dev/null differ diff --git a/asdl/bin/totale/p240213/Discendenza.class b/asdl/bin/totale/p240213/Discendenza.class deleted file mode 100644 index 8da5895..0000000 Binary files a/asdl/bin/totale/p240213/Discendenza.class and /dev/null differ diff --git a/asdl/bin/totale/p240618/CorpoDocente$1.class b/asdl/bin/totale/p240618/CorpoDocente$1.class deleted file mode 100644 index 586cca4..0000000 Binary files a/asdl/bin/totale/p240618/CorpoDocente$1.class and /dev/null differ diff --git a/asdl/bin/totale/p240618/CorpoDocente.class b/asdl/bin/totale/p240618/CorpoDocente.class deleted file mode 100644 index ffb50f6..0000000 Binary files a/asdl/bin/totale/p240618/CorpoDocente.class and /dev/null differ diff --git a/asdl/bin/totale/p240618/Docente.class b/asdl/bin/totale/p240618/Docente.class deleted file mode 100644 index 28ae5c6..0000000 Binary files a/asdl/bin/totale/p240618/Docente.class and /dev/null differ diff --git a/asdl/bin/totale/p240709/AssegnazioniDocenti.class b/asdl/bin/totale/p240709/AssegnazioniDocenti.class deleted file mode 100644 index 2e9a109..0000000 Binary files a/asdl/bin/totale/p240709/AssegnazioniDocenti.class and /dev/null differ diff --git a/asdl/bin/vettore_ordinabile/Main.class b/asdl/bin/vettore_ordinabile/Main.class deleted file mode 100644 index 524a38f..0000000 Binary files a/asdl/bin/vettore_ordinabile/Main.class and /dev/null differ diff --git a/asdl/bin/vettore_ordinabile/VettoreOrdinabile.class b/asdl/bin/vettore_ordinabile/VettoreOrdinabile.class deleted file mode 100644 index 60e052d..0000000 Binary files a/asdl/bin/vettore_ordinabile/VettoreOrdinabile.class and /dev/null differ diff --git a/asdl/bin/vettore_ordinabile/VettoriIntero.class b/asdl/bin/vettore_ordinabile/VettoriIntero.class deleted file mode 100644 index 255bf43..0000000 Binary files a/asdl/bin/vettore_ordinabile/VettoriIntero.class and /dev/null differ diff --git a/asdl/src/binary_tree/LinkedBinaryTree.java b/asdl/src/binary_tree/LinkedBinaryTree.java index 3570369..db31ae5 100644 --- a/asdl/src/binary_tree/LinkedBinaryTree.java +++ b/asdl/src/binary_tree/LinkedBinaryTree.java @@ -700,6 +700,38 @@ public class LinkedBinaryTree implements BinaryTree{ if (diff < -1 || diff > 1) return -1; return leftValue + rightValue + 1; + // TOTALE 09 LUGLIO 2024 + /* + Realizzare un metodo generico statico + public static boolean TwinChildren(BinaryNode root) + che, dato in input l'albero radicato in root, restituisce TRUE se esiste almeno un nodo + che ha esattamente due figli e questi figli sono uguali, FALSE altrimenti. + */ + public static boolean TwinChildren(BinaryNode root) { + // Null Check (SI APPLICA SOLO SUL NODO ROOT) + if (root == null) throw new NullPointerException(); + + // Se il nodo è un nodo foglia + if (root.getLeft() == null && root.getRight() == null) return false; + + // Otteniamo i valori del nodo a sinistra e il nodo a destra + boolean valoreSx = (root.getLeft() != null) ? TwinChildren(root.getLeft()) : false; + // Risaliamo velocemente se il nodo è stato trovato + if (valoreSx) return true; + + boolean valoreDx = (root.getRight() != null) ? TwinChildren(root.getRight()) : false; + // Risaliamo velocemente se il nodo è stato trovato + if (valoreDx) return true; + + // Controllo quanti nodi ha il nodo corrente + if (root.getLeft() == null || root.getRight() == null) return false; + + // Controllo i dati + E leftData = root.getLeft().getData(); + E rightData = root.getRight().getData(); + if (leftData == null || rightData == null) return false; + + return leftData.equals(rightData); } } diff --git a/asdl/src/network/network/Network.java b/asdl/src/network/network/Network.java index 6effddb..afc44c1 100644 --- a/asdl/src/network/network/Network.java +++ b/asdl/src/network/network/Network.java @@ -12,6 +12,7 @@ import java.util.Set; import java.util.Stack; import java.util.TreeMap; import java.util.TreeSet; +import java.util.ArrayList; public class Network> implements Graph{ @@ -103,6 +104,25 @@ public class Network> implements Graph Double p = Math.random(); if (cmp < 0) addEdge(s1, s2, -p); if (cmp > 0) addEdge(s1, s2, p); + Implementare un metodo costruttore della classe Network che prende in input due liste + L1 e L2 di tipo ArrayList e costruisce un nuovo grafo orientato come segue: + gli oggetti presenti nelle due liste rappresentano i vertici; per ogni coppia di vertici + distinti x ∈ L1 e y ∈ L2, il grafo contiene l’arco orientato x→y, avente come peso un + valore double -p se xy, dove p ε[0,1) è generato con il metodo + Math.random(). + */ + public Network(ArrayList L1, ArrayList L2) { + // Null check + if (L1 == null || L2 == null) throw new NullPointerException(); + // Aggiunta dei vertici + for (Vertex SS : L1) this.addVertex(SS); + for (Vertex SS : L2) this.addVertex(SS); + // Aggiunta degli archi + for (Vertex x : L1) { + for (Vertex y : L2) { + Double p = Math.random(); + if (x.compareTo(y) < 0) p = -p; + this.addEdge(x, y, p); } } } diff --git a/asdl/src/totale/p090724/AssegnazioniDocenti.java b/asdl/src/totale/p090724/AssegnazioniDocenti.java new file mode 100644 index 0000000..dd58fe0 --- /dev/null +++ b/asdl/src/totale/p090724/AssegnazioniDocenti.java @@ -0,0 +1,112 @@ +package totale.p090724; + +import java.util.Set; +import java.util.HashSet; +import java.util.TreeSet; + +import java.util.Map; +import java.util.HashMap; +import java.util.TreeMap; + +public class AssegnazioniDocenti { + + // Mappa di Associazioni + private Map map = new HashMap(); + private Set docenti = new HashSet(); + + // Metodo 1 + /* + un metodo che aggiunge una nuova associazione o aggiorna la precedente, dati in + input il CF del docente e il CM della scuola (non nulli); + */ + public void insertOrUpdateDocente( + String CF, + String CM + ) { + // Null check + if (CF == null || CM == null) throw new NullPointerException(); + // Controllo se è vuoto + if (CF.isBlank() || CM.isBlank()) throw new IllegalArgumentException(); + // Aggiungo direttamente il record + map.put(CF, CM); + docenti.add(CF); + } + + // Metodo 2 + /* + un metodo che verifica se un docente è stato assegnato ad una scuola, dato in + input il CF del docente; + */ + public boolean isDocenteAssigned( + String CF + ) { + // Null check + if (CF == null) throw new NullPointerException(); + // Controllo se è vuoto + if (CF.isBlank()) throw new IllegalArgumentException(); + // Verifico la presenza + return map.get(CF) != null; + } + + // Metodo 3 + /* + un metodo che cancella l’associazione corrente per un docente, se presente, dato + in input il suo CF; + */ + public void removeDocenteReferenceToScuola( + String CF + ) { + // Null check + if (CF == null) throw new NullPointerException(); + // Controllo se è vuoto + if (CF.isBlank()) throw new IllegalArgumentException(); + // Rimozione + map.remove(CF); + } + + // Metodo 4 + /* + un metodo che, dato in input il CM di una scuola, restituisce l’insieme dei codici + fiscali dei docenti assegnati alla data scuola nel corrente anno scolastico, in ordine + lessicografico crescente; + */ + public Set getDocentiPerScuola( + String CM + ) { + // Null check + if (CM == null) throw new NullPointerException(); + // Controllo se è vuoto + if (CM.isBlank()) throw new IllegalArgumentException(); + // Creazione della struttura dati + Set tmp = new TreeSet(); + // Selezione dei docenti per il CM fornito + for (String docente : map.keySet()) { + String codiceMeccanografico = map.get(docente); + if (codiceMeccanografico == null || !codiceMeccanografico.equals(CM)) continue; + tmp.add(docente); + } + // Restituisco il Set + return tmp; + } + + // Metodo 5 + /* + un metodo che restituisce una nuova mappa che associa ad ogni CM + rappresentante una scuola il numero di docenti in servizio presso di essa, + ordinata in base al CM. + */ + public Map getNumeroDocentiPerScuolaOrdinatoPerCM() { + // Creazione della struttura dati + Map tmp = new TreeMap(); + // Trovo le associazioni + for (String docente : map.keySet()) { + String codiceMeccanografico = map.get(docente); + if (codiceMeccanografico == null) continue; + if (tmp.get(codiceMeccanografico) == null) tmp.put(codiceMeccanografico, 1); + else tmp.put(codiceMeccanografico, tmp.get(codiceMeccanografico) + 1); + } + // Return finale + return tmp; + } + +} \ No newline at end of file