Sei sulla pagina 1di 7

CAPITOLO 12 /** Classe che descrive un animale */ public class Animale { private String nome; private int eta;

//in anni private double peso; //in Kg public Animale() { nome = "Nessun nome"; eta = 0; peso = 0; } public Animale(String nomeIniziale, int etaIniziale, double pesoIniziale) { nome = nomeIniziale; if ((etaIniziale < 0) || (pesoIniziale < 0) ) { System.out.println("Errore: eta' o peso negativi."); System.exit(0); } else { eta = etaIniziale; peso = pesoIniziale; } } public void setAnimale(String nuovoNome, int nuovaEta, double nuovoPeso) { nome = nuovoNome; if ((nuovaEta < 0) || (nuovoPeso < 0)) { System.out.println("Errore: eta' o peso negativi."); System.exit(0); } else { eta = nuovaEta; peso = nuovoPeso; } } public Animale(String nomeIniziale) { nome = nomeIniziale; eta = 0; peso = 0; } public void setNome(String nuovoNome) { nome = nuovoNome; //eta' e peso rimangono invariate } public Animale(int etaIniziale) { nome = "Nessun nome"; peso = 0; if (etaIniziale < 0) { System.out.println("Errore: eta' negativa."); System.exit(0); } else { eta = etaIniziale; } } public void setEta(int nuovaEta) { if (nuovaEta < 0) { System.out.println("Errore: eta' negativa."); System.exit(0);

} else { eta = nuovaEta; //nome e peso rimangono invariate } } public Animale(double pesoIniziale) { nome = "Nessun nome"; eta = 0; if (pesoIniziale < 0) { System.out.println("Errore: peso negativo."); System.exit(0); } else { peso = pesoIniziale; } } public void setPeso(double nuovoPeso) { if (nuovoPeso < 0) { System.out.println("Errore: peso negativo."); System.exit(0); } else { peso = nuovoPeso; //nome e eta' rimangono invariate } } public String getNome() { return nome; } public int getEta() { return eta; } public double getPeso() { return peso; } public void scriviOutput(){ System.out.println("Nome: " + nome); System.out.println("Eta: " + eta + " anni"); System.out.println("Peso: " + peso + " Kg"); } } import java.util.HashSet; public class ForEachDemo { public static void main(String[] args) { HashSet<String> s = new HashSet<String>(); s.add("salute"); s.add("amore"); s.add("denaro"); System.out.println("Linsieme contiene:"); String ultimo = null; for (String e : s) { ultimo = e; System.out.println(e); }

s.remove(ultimo); System.out.println(); System.out.println("Ora linsieme contiene:"); for (String e : s) System.out.println(e); System.out.println("Fine del programma."); } } // Questa classe usa la classe Studente definita nel Capitolo 8. import java.util.HashMap; import java.util.Scanner; public class HashMapDemo { public static void main(String[] args) { // Crea una HashMap con capacit iniziale 10 e fattore di // carico di default HashMap<String, Studente> studenti = new HashMap<String, Studente>(10); // Aggiunge alla mappa alcuni studenti utilizzando i loro // nomi come chiave studenti.put("Alessio", new Studente("Alessio", 701554)); studenti.put("Giulio", new Studente("Giulio", 701784)); studenti.put("Lorenzo", new Studente("Lorenzo ", 702185)); studenti.put("Marco ", new Studente("Marco", 701812)); studenti.put("Simone", new Studente("Simone ", 701156)); System.out.print("Aggiunti Alessio, Giulio, Lorenzo, Marco, "); System.out.println("e Simone alla mappa."); // Richiesta di un nome allutente. // Se il nome nella mappa, lo si stampa. Scanner tastiera = new Scanner(System.in); String nome = ""; do { System.out.print("\nInserire un nome da cercare. "); System.out.println("Premere Invio per uscire."); nome = tastiera.nextLine(); if (studenti.containsKey(nome)) { Studente i = studenti.get(nome); System.out.println("Nome trovato: "); i.scriviOutput(); } else if (!nome.equals("")) { System.out.println("Nome non trovato."); } } while (!nome.equals("")); } } import java.util.HashSet; import java.util.Iterator; public class HashSetDemo {

public static void stampaInsieme(HashSet<String> insieme) { Iterator<String> i = insieme.iterator(); while (i.hasNext()) System.out.print(i.next() + " "); System.out.println(); } public static void main(String[] args) { HashSet<String> rotondi = new HashSet<String>(); HashSet<String> verdi = new HashSet<String>(); // Aggiunta di dati ai due insiemi rotondi.add("piselli"); rotondi.add("palla"); rotondi.add("torta"); rotondi.add("acini"); verdi.add("piselli"); verdi.add("acini"); verdi.add("tubo da giardino"); verdi.add("erba"); System.out.println("Contenuto dellinsieme rotondi: "); stampaInsieme(rotondi); System.out.println("\nContenuto dellinsieme verdi: "); stampaInsieme(verdi); System.out.println("\npalla e' nellinsieme rotondi? " + rotondi.contains("palla")); System.out.println("palla e' nellinsieme verdi? " + verdi.contains("palla")); System.out.println("\npalla e piselli nello stesso insieme? " + ((rotondi.contains("palla") && (rotondi.contains("piselli"))) || (verdi.contains("palla") && (verdi.contains("piselli"))))); System.out.println("torta e erba nello stesso insieme? " + ((rotondi.contains("torta") && (rotondi.contains("erba"))) || (verdi.contains("torta") && (verdi.contains("erba"))))); // Per ottenere lunione dei due insiemi si usa // il metodo addAll HashSet<String> unione = new HashSet<String>(rotondi); unione.addAll(verdi); System.out.println("\nUnione di verdi e rotondi:"); stampaInsieme(unione); // Per ottenere lintersezione dei due insiemi si usa // il metodo retainAll HashSet<String> intersezione = new HashSet<String>(rotondi); intersezione.retainAll(verdi); System.out.println("\nIntersezione di verdi e rotondi:"); stampaInsieme(intersezione); System.out.println(); } } import java.util.HashSet; import java.util.Iterator;

public class IteratoreHashSetDemo { public static void main(String[] args) { HashSet<String> s = new HashSet<String>(); s.add("salute"); s.add("amore"); s.add("denaro"); System.out.println("Linsieme contiene:"); Iterator<String> i = s.iterator(); while (i.hasNext()) System.out.println(i.next()); i.remove(); System.out.println(); System.out.println("Ora linsieme contiene:"); i = s.iterator(); while (i.hasNext()) System.out.println(i.next()); System.out.println("Fine del programma."); } } public class Persona { private String nome; public Persona() { nome = "Ancora nessun nome"; } public Persona(String nomeIniziale) { nome = nomeIniziale; } public void setNome(String nuovoNome) { nome = nuovoNome; } public String getNome() { return nome; } public void scriviOutput() { System.out.println("Nome: " + nome); } public boolean haLoStessoNome(Persona altraPersona) { return this.nome.equalsIgnoreCase(altraPersona.nome); } } import java.util.ArrayList; import java.util.Iterator; public class RiferimentiIteratoriDemo { public static void main(String[] args) { ArrayList<Animale> cani = new ArrayList<Animale>(); cani.add(new Animale("Fido", 3, 9));

cani.add(new Animale("Fuffy", 4, 8)); cani.add(new Animale("Pluto", 2, 7)); System.out.println("La lista contiene:"); Iterator<Animale> i = cani.iterator(); while (i.hasNext()) i.next().scriviOutput(); i = cani.iterator(); Animale c = null; //Per non avere problemi di compilazione. System.out.println("Modifica dei riferimenti."); while (i.hasNext()) { c = i.next(); c.setPeso(10); } System.out.println("La lista ora contiene:"); i = cani.iterator(); while (i.hasNext()) i.next().scriviOutput(); } } public class Studente extends Persona { private int matricola; public Studente() { super(); matricola = 0;//Ancora nessuna matricola } public Studente(String nomeIniziale, int matricolaIniziale) { super(nomeIniziale); matricola = matricolaIniziale; } public void reimposta(String nuovoNome, int nuovaMatricola) { setNome(nuovoNome); matricola = nuovaMatricola; } public int getMatricola() { return matricola; } public void setMatricola(int nuovaMatricola) { matricola = nuovaMatricola; } public void scriviOutput() { System.out.println("Nome: " + getNome()); System.out.println("Matricola: " + matricola); } public boolean equals(Studente altroStudente) { return this.haLoStessoNome(altroStudente) && (this.matricola == altroStudente.matricola); } }