Sei sulla pagina 1di 5

da array a lista: List<Persona> l = Arrays.

asList(elencoPersone);

da lista ad array: metodo toArray dell'interfaccia List


Persona[] array = listaPersone.toArray(new Persona[0]);

ESEMPIO DI ECCEZIONI

try{
SegnoZodiacale.valueOf(nomeSegnoZodiacale);

} catch (IllegalArgumentException e){

throw new IllegalArgumentException("Segno non valido");

Media arrotondata allintero pi vicino


public int getFortuna() {
long val = Math.round((amore.getValore() + lavoro.getValore() +
salute.getValore()) / 3.0);
return (int) val;
}

public int compareTo(OroscopoMensile o) {


// TODO Auto-generated method stub

return getSegno().compareTo(o.getSegno());

la media, risultato deve essere arrotondato alla seconda cifra decimale. Nel
caso in cui la media non sia calcolabile (assenza di esami superati), restituisce 0
public double getMediaPesata() {
List<Esame> superati = getEsamiSuperati();
if (superati.size() == 0) {
return 0;
}
//
float media = 0;
for (Esame e : superati){
media += e.getValoreVoto() * e.getInsegnamento().getCfu();
}
return Math. rint(100*media/getCreditiAcquisiti())/100;
}

valueOf restituisce il valore dellenumerativo


try{
SegnoZodiacale.valueOf(nomeSegnoZodiacale);

} catch (IllegalArgumentException e){

throw new IllegalArgumentException("Segno non valido");

try {
matricolaAsLong = Long.parseLong(matricola);
} catch (NumberFormatException e) {
throw new IllegalArgumentException("matricola", e);
}

To sring
public String toString() {
char[] trentaSpazi = new char[30];
Arrays.fill(trentaSpazi, ' ');
String nomeConSpazi = (nome + new String(trentaSpazi)).substring(0, 30);
return codice + "\t" + nomeConSpazi + "\t(" + ssd + ")\tCFU:" + cfu
+ "\tCiclo: " + semestre + "\tTipologia: " + categoria;
}

public String toString() {


DateFormat formatter = DateFormat.getDateInstance(DateFormat.SHORT);
return insegnamento.getNome() + "\t\t Voto: " + getVoto() + "\t Data: " +
formatter.format(data);
}
compareTo che ordina gli oroscopi seguendo lordine dellenumerativo SegnoZodiacale;

public int compareTo(Oroscopo that) {


int z1 = this.getSegnoZodiacale().ordinal(), z2 = that
.getSegnoZodiacale().ordinal();
return z1 < z2 ? -1 : (z1 == z2 ? 0 : 1);
}

formatter = DateFormat.getDateInstance(DateFormat.SHORT);

public void sostituisciInsegnamento(Insegnamento corrente,


Insegnamento futuro) throws IllegalArgumentException {
if (!getInsegnamenti().contains(corrente))
throw new IllegalArgumentException(
"Insegnamento da sostituire non presente nel piano di
studi");
if (getInsegnamenti().contains(futuro))
throw new IllegalArgumentException(
"Insegnamento da inserire gi presente nel piano di
studi");
if (corrente.getCategoria() == Categoria.OBBLIGATORIO)
throw new IllegalArgumentException(
"Un insegnamento obbligatorio non pu essere
sostituito");
if (corrente.getCfu() != futuro.getCfu())
throw new IllegalArgumentException(
"L'insegnamento da sostituire deve avere egual numero di
crediti");
if (futuro.getCategoria() == Categoria.OBBLIGATORIO)
throw new IllegalArgumentException(
"L'insegnamento con cui sostituire deve essere a
scelta");

getInsegnamenti().remove(corrente);
getInsegnamenti().add(futuro);
}
}

private Map<Long, List<Esame>> esami;

this.esami = new TreeMap<Long, List<Esame>>();

java.time
concetti relativi
LocalDate: una data relativa (giorno/mese/anno)
LocalTime: un orario relativo (ore/minuti/secondi)
LocalDateTime: una data + orario relativi
Period: una durata relativa (misurata in giorni, mesi, anni, etc)
concetti assoluti
Instant: un punto sulla linea del tempo espresso in nanosecondi
Duration: una durata in (nano)secondi fra due istanti di tempo
OffsetDateTime: una data assoluta sulla linea del tempo
espressa come data + orario + delta rispetto a Greenwich (UTC)
ZonedDateTime: una data assoluta sulla linea del tempo
espressa come data + orario + fuso orario (es. CET, GMT-5, ecc.)

verificare se un anno bisestile (isLeapYear)

Formattazione di numeri
NumberFormat formattatore = NumberFormat.getNumberInstance();
formattatore = NumberFormat.getNumberInstance(Locale.CANADA);
System.out.println( formattatore.format(z) ); // 13,456.78

Formattazione di valute
x = 1243.5678;
NumberFormat formattatoreEUR = NumberFormat.getCurrencyInstance();
System.out.println(formattatoreEUR.format(x)); // 1.243,57

NumberFormat formattatoreGBP = NumberFormat.getCurrencyInstance(Locale.UK);


System.out.println(formattatoreGBP.format(x)); // 1,243.57

NumberFormat: si chiede
al formattatore di formattare un numero
myNumberFormat.format()
al formattatore di trasformare una stringa in numero
myNumberFormat.parse()
DateTimeFormatter: si chiede
alla grandezza di formattarsi usando il formattatore specificato
myLocalDateTime.format(myDateTimeFormatter)
alla classe della grandezza (metodo statico factory) di trasformare
una stringa in un valore "del tipo giusto"
LocalDateTime.parse(myDateTimeFormatter)