mac->arch

This commit is contained in:
eslusarz
2026-05-19 13:42:21 +02:00
parent 646f4dc077
commit 30b66dd99b
305 changed files with 1617 additions and 31630 deletions
+35
View File
@@ -0,0 +1,35 @@
package parziale.p231110;
import java.util.Map;
import java.util.HashMap;
public class Esercizio {
/*
* Scrivere un metodo generico statico che prende in input
* un array di elementi e restituisce il
* numero di oggetti presenti allinterno dellarray che
* non presentano duplicazioni. Quindi
* utilizzare il metodo sul tipo Integer.
* Esempio: se larray fosse {10, 6, 5, 6, 7, 8, 6, 8, 10, 12, 10},
* il metodo dovrebbe restituire
* lintero 3 (in grassetto i 3 elementi che non presentano duplicazioni).
*/
public static int numeroOccorrenzeSingole(int[] array) {
if (array == null) throw new NullPointerException();
Map<Integer, Integer> lista = new HashMap<Integer, Integer>();
for (Integer i : array) {
if (lista.get(i) == null) lista.put(i, 1);
else lista.put(i, lista.get(i) + 1);
}
int counter = 0;
for (Integer i : lista.keySet()) {
if (lista.get(i) == 1) counter++;
}
return counter;
}
}
+116
View File
@@ -0,0 +1,116 @@
package parziale.p231110;
import java.lang.Integer;
import java.util.Comparator;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.Map;
import java.util.TreeMap;
public class Libreria {
/*
* Libreria che rappresenta una libreria
* come una lista di libri senza duplicati e
* supporta le seguenti operazioni.
*/
Set<Libro> libreria = new HashSet<Libro>();
/*
* Metodo n.1
* inserire nella libreria un nuovo libro, se non è già presente,
* dati in input lISBN e lanno
* di pubblicazione;
*/
public boolean aggiungiLibro(Libro libro) {
if (libro == null) throw new NullPointerException();
return libreria.add(libro);
}
/*
* verificare se la libreria contiene un libro,
* dato in input il suo ISBN;
*/
public boolean contieneLibro(String ISBN) {
return libreria.contains(new Libro(ISBN, 0));
}
/*
* cancellare dalla libreria un libro, se presente,
* dato in input il suo ISBN;
*/
public boolean rimuoviLibro(String ISBN) {
return libreria.remove(new Libro(ISBN, 0));
}
/*
* ordinare la lista dei libri in ordine
* crescente rispetto al codice ISBN;
*/
public List<Libro> listaOrdinata() {
List<Libro> listaOrdinata = new ArrayList<Libro>(libreria);
if (libreria.isEmpty()) return listaOrdinata;
Collections.sort(listaOrdinata, new Comparator<Libro>() {
@Override
public int compare(Libro l1, Libro l2) {
String ISBN1 = l1.ISBN();
String ISBN2 = l2.ISBN();
return ISBN1.compareTo(ISBN2);
}
});
return listaOrdinata;
}
/*
* ordinare la lista dei libri in ordine decrescente
* rispetto allanno di prima pubblicazione;
*/
public List<Libro> listaOrdinataPerAnnoDec() {
List<Libro> listaOrdinata = new ArrayList<Libro>(libreria);
if (libreria.isEmpty()) return listaOrdinata;
Collections.sort(listaOrdinata, new Comparator<Libro>() {
@Override
public int compare(Libro l1, Libro l2) {
int anno1 = l1.annoPubblicazione();
int anno2 = l2.annoPubblicazione();
return Integer.compare(anno2, anno1);
}
});
return listaOrdinata;
}
/*
* calcolare restituire in output, per ogni anno di
* pubblicazione compreso tra il 2000 e il
* 2023, il relativo numero di libri contenuti nella libreria.
*/
public Map<Integer, Integer> numeroLibriTra2000e2023() {
// Anno Libro (Integer), Numero di occorrenze (Integer)
Map<Integer, Integer> mappaOrdinata = new TreeMap<Integer, Integer>();
for (Libro libro : libreria) {
int anno = libro.annoPubblicazione();
if (!(anno >= 2000 && anno <= 2023)) continue;
if (mappaOrdinata.get(anno) == null) mappaOrdinata.put(anno, 1);
else mappaOrdinata.put(anno, 1 + mappaOrdinata.get(anno));
}
return mappaOrdinata;
}
}
+45
View File
@@ -0,0 +1,45 @@
package parziale.p231110;
import java.util.Objects;
public class Libro{
// Metodi di instanza
private String ISBN;
private int annoPubblicazione;
// Metodo costruttore
public Libro(
String ISBN,
int annoPubblicazione) {
this.ISBN = ISBN;
this.annoPubblicazione = annoPubblicazione;
}
// Metodi getter
public String ISBN() {
return ISBN;
}
public int annoPubblicazione() {
return annoPubblicazione;
}
// Metodi di oggetto (fondamentali per HashSet usato in Libreria)
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj == this) return true;
if (!(obj instanceof Libro)) return false;
Libro extObj = (Libro) obj;
return this.ISBN.equals(extObj.ISBN);
}
@Override
public int hashCode() {
return Objects.hash(ISBN);
}
}