arch
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
package totale.p240130;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.Comparator;
|
||||
|
||||
public class Catologo {
|
||||
|
||||
private TreeSet<Articolo> catalogo = new TreeSet<Articolo>(new Comparator<Articolo>() {
|
||||
@Override
|
||||
public int compare(Articolo articolo1, Articolo articolo2) {
|
||||
// Prezzo non decrescente
|
||||
int cmp = Double.compare(articolo1.prezzo(), articolo2.prezzo());
|
||||
if (cmp != 0) return cmp;
|
||||
// Nome crescente
|
||||
cmp = articolo1.nome().compareTo(articolo2.nome());
|
||||
if (cmp != 0) return cmp;
|
||||
// Ritorna in base al ID
|
||||
return articolo1.id().compareTo(articolo2.id());
|
||||
}
|
||||
});
|
||||
|
||||
// Metodo 1
|
||||
public boolean add(Articolo art) {
|
||||
// Null check
|
||||
if (art == null) throw new NullPointerException();
|
||||
// Verifica la presenza
|
||||
for (Articolo a : catalogo) {
|
||||
if (a.equals(art)) return false;
|
||||
}
|
||||
// Aggiunta
|
||||
return catalogo.add(art);
|
||||
}
|
||||
|
||||
// Metodo 2
|
||||
public Articolo cercaArticolo(String cod) {
|
||||
// Null check
|
||||
if (cod == null) throw new NullPointerException();
|
||||
// Ricerca
|
||||
for (Articolo a : catalogo) {
|
||||
if (a.id().equals(cod)) return a;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// Metodo 3
|
||||
public boolean cancellaArticolo(String cod) {
|
||||
// Null check
|
||||
if (cod == null) throw new NullPointerException();
|
||||
// Iterator
|
||||
Iterator<Articolo> it = catalogo.iterator();
|
||||
while (it.hasNext()) {
|
||||
Articolo cur = it.next();
|
||||
if (!(cur.id().equals(cod))) continue;
|
||||
it.remove();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Metodo 4
|
||||
public List<Articolo> getArticoliSottoPrezzo(Double prezzo) {
|
||||
// Null check
|
||||
if (prezzo == null) throw new NullPointerException();
|
||||
// Creazione dell'oggetto di tipo lista
|
||||
List<Articolo> lista = new LinkedList<Articolo>();
|
||||
// Controllo sulla size
|
||||
if (catalogo.isEmpty()) return lista;
|
||||
// Se il catalogo non è empty
|
||||
for (Articolo art : catalogo) {
|
||||
Double curPrezzo = art.prezzo();
|
||||
if (curPrezzo >= prezzo) break;
|
||||
lista.add(art);
|
||||
}
|
||||
return lista;
|
||||
}
|
||||
|
||||
// Metodo 5
|
||||
public Set<Articolo> ordinaByCodice() {
|
||||
Set<Articolo> articoliByCodice = new TreeSet<Articolo>();
|
||||
articoliByCodice.addAll(catalogo);
|
||||
return articoliByCodice;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user